1个回答
展开全部
(from wiki)In the 1950s, mathematician Stephen Cole Kleene described these models(指自动机) using his mathematical notation called regular sets
然后再regular expression,翻译过来叫正则
-----------------------------------------------------------------
对正则的理解... 排除语法的问题,那就没问题了...
简单的说,就是让机器理解你的意图,与编程差不都,但是他只保留了精华部分,去掉了一下修饰部分。
举例来说 123abcABC 这组字符串,你想要数字部分,那你就跟计算机说,我只要数字部分,帮我提取出来。
而怎么跟他说呢,就是:[0-9]* ,意思就是说,所有 0 至 9 这的字符帮我拿出来,当然,你也可以用其它方式说,比如 所有包含 1234567890 帮我拿出来,那就这么写 [1234567890]* ,或者说,所有数字帮我拿出来 [\d]* 就这么写。
以上三个正则表达式可以得到相同的结果。
-----------------------------------------------------------------
就是让计算机理解你的意图。当然,是使用他懂的语言来告诉他你的意图。
当然,你的意图可以更复杂一些,比如 123abcABC456
你可以说把最前面的数字帮我拿出来:^[\d]* (注:此结果得到的字符是123)
或者说把最后的数字帮我拿出来:[\d]*$ (注:此结果得到的字符是456)
甚至说帮我把大写 A 字符之前的一个字符帮我拿出来:(.{1})A (注:此结果得到的字符是c)
你要做的就是怎么能让计算机听懂你说的话。
然后再regular expression,翻译过来叫正则
-----------------------------------------------------------------
对正则的理解... 排除语法的问题,那就没问题了...
简单的说,就是让机器理解你的意图,与编程差不都,但是他只保留了精华部分,去掉了一下修饰部分。
举例来说 123abcABC 这组字符串,你想要数字部分,那你就跟计算机说,我只要数字部分,帮我提取出来。
而怎么跟他说呢,就是:[0-9]* ,意思就是说,所有 0 至 9 这的字符帮我拿出来,当然,你也可以用其它方式说,比如 所有包含 1234567890 帮我拿出来,那就这么写 [1234567890]* ,或者说,所有数字帮我拿出来 [\d]* 就这么写。
以上三个正则表达式可以得到相同的结果。
-----------------------------------------------------------------
就是让计算机理解你的意图。当然,是使用他懂的语言来告诉他你的意图。
当然,你的意图可以更复杂一些,比如 123abcABC456
你可以说把最前面的数字帮我拿出来:^[\d]* (注:此结果得到的字符是123)
或者说把最后的数字帮我拿出来:[\d]*$ (注:此结果得到的字符是456)
甚至说帮我把大写 A 字符之前的一个字符帮我拿出来:(.{1})A (注:此结果得到的字符是c)
你要做的就是怎么能让计算机听懂你说的话。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询