正则表达式
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。
正则表达式通常用于两种任务:1.验证,2.搜索/替换。用于验证时,通常需要在前后分别加上^和$,以匹配整个待验证字符串;搜索/替换时是否加上此限定则根据搜索的要求而定,此外,也有可能要在前后加上\b而不是^和$。
元字符 metacharacter
匹配位置
- 匹配字符串的开始
^ - 匹配字符串的结束
$ - 匹配单词的开头结尾
\b
匹配数量
- 匹配0或1个数量
? - 匹配n个数量
{n} - 匹配n-m个数量
{n,m} - 匹配至少n个数量
{n,} - 匹配任意数量
* - 匹配至少一个数量
+
匹配字符
- 匹配一个数字
\d - 匹配除了换行符外任意字符
. - 匹配空白符
\s - 匹配字母数字下划线汉字
\w - 匹配集合中的一个字符
[set]
分组
- 匹配一个分组
(分组)
字符转义
- 元字符跳脱
\metacharacter - 斜线跳脱
\\
分支
|
反义
- 和元字符反着干,大写
\W\S\D\B[^set]
后向引用
后向引用用于重复搜索前面某个分组匹配的文本。
断言
负向断言
注释
贪婪匹配、懒惰匹配
默认为贪婪匹配;加?则为懒惰匹配