正则表达式

来源:互联网 发布:java long几个字节 编辑:程序博客网 时间:2024/06/05 19:36

正则表达式(1)

正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。

我们可以使用 以下的工具进行在线匹配:1 http://www.regexpal.com/  2 http://rubular.com/ 

“^”:会匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置。
“$” :会匹配行或字符串的结尾
“\b” :不会消耗任何字符只匹配一个位置,常用于匹配单词边界
“\d”: 匹配数字
“\w”:匹配字母,数字,下划线
“.”:匹配除了换行符以外的任何字符
“[abc]”: 字符组 匹配包含括号内元素的字符
Tips:大写后与原来的匹配结果相反。

量词

贪婪(贪心) 如"*"字符 贪婪量词会首先匹配整个字符串,尝试匹配时,它会选定尽可能多的内容,如果 失败则回退一个字符,然后再次尝试回退的过程就叫做回溯,它会每次回退一个字符,直到找到匹配的内容或者没有字符可以回退。相比下面两种贪婪量词对资源的消耗是最大的 懒惰(勉强) 如 "?"  懒惰量词使用另一种方式匹配,它从目标的起始位置开始尝试匹配,每次检查一个字符,并寻找它要匹配的内容,如此循环直到字符结尾处。 占有  如"+" 占有量词会覆盖事个目标字符串,然后尝试寻找匹配内容 ,但它只尝试一次,不会回溯,就好比先抓一把石头,然后从石头中挑出黄金

“{n}” 重复n次

   例如从”aaaaaaaa” 匹配字符串的a 并重复3次 正则: “a{3}” 结果就是取到3个a字符 “aaa”;

原创粉丝点击