什么是正则表达式
在编写处理字符串的时候,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用来描述这些规则的工具,换句话说,正则表达式就是记录文本规则的代码。
正则表达式语法递进学习
(1) 关于大小写,正则表达式处理工具会有控制的机制,人为可调,后面会讲。
(2) \b
这是属于正则表达式里面的所谓元字符。看看应用,假设想要在某段文本中查找”men”这个字符串。若是没有使用\b,那么结果是这样的:
如果使用了\b的话,结果就是这样:
\b匹配的是单词边界,不匹配任何字符。其中的单词是指另外一个元字符\w所规定的字符串,具体有哪些呢?
这个是看情况的,在支持ASCII码的语言中,\w那就是等价于【a-A-9_】;而在Unicode的语言中,默认情况下,除了以上那些,还包括汉字,全角数字等。
(3) “.” “*”
如果要查找以”men”开头,以”Lucy”结尾的字符串,怎么做呢,可以如下操作,结果如下:
“.” 和”*”都是属于元字符。
“.”匹配除了换行符以外的任意一位字符。
“*”不代表字符和位置(不要把它和windows系统里面的查询的通配符论比),在正则表达式里面,它表达的是*前边的内容可以连续重复使用任意次以上。
上述图片里面的意思就是以”men”开头,”Lucy”结尾,中间有任意数量但是不能有换行的字符的字符串。所以图片蓝色框框内的字符串没有连起来,因为换行了。”*”可以匹配的是0个或者更多个,有一个符号作用与*相同,那就是”+”,但是它匹配的是1个或者更多个。
(4) “\d” “-“
若是想要查找数字字符串怎么办?使用”\d”。
“\d”也是元字符,表示一位数字(0~9)。
“-”不属于元字符,只用来匹配自己,所以可以用来匹配中横线或者减号。
如下图所表示:
但是输入这么多的符号,非常的麻烦,于是,另外的一个方法解决这个麻烦:
相必已经看到,在\d的后面多了{2},其中2就表示是数目。
(5) 测试工具,这里使用的测试工具是从网上下载的RegexBuddy,可以用来做正则表达式的练习和测试。
(6) \w
再来说说\w,前面已经说过,\w表示的是一个匹配单词的元字符,\w也可以用{数字}来表示这个单词有几位。例如\b\w{4}\b:匹配4个字符的单词。
(7) 其它常用元字符
详解 |
|
\s |
匹配任意的空白符 |
^ |
匹配字符串的开始 |
$ |
匹配字符串的结束 |
说明:\s匹配的空白符包括空格,制表符(tab)换行符,中文全角空格。
符号^和$类似于\b,下面是一个实例:
其中,{5,12}是{5}这种形式的扩展用法,{5}表示必须是5个,而{5,12}则是表示可以为5~12个数,重复方法小结:
详解 |
|
* |
重复0次或者更多次 |
+ |
重复1次或者以上 |
? |
重复0次或者1次 |
{n} |
重复n次 |
{n,} |
重复n次或者更多次 |
{n,m} |
重复n次到m次 |