正则表达式
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。
正则表达式通常用于两种任务: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]
后向引用
后向引用用于重复搜索前面某个分组匹配的文本。
断言
负向断言
注释
贪婪匹配、懒惰匹配
默认为贪婪匹配;加?
则为懒惰匹配