正则表达式是一种强大的文本匹配和处理工具,用于模式匹配、搜索、替换等操作。下面是一些常用的正则表达式规则及其解释:
-
点
.- 匹配任何单个字符(除了换行符)。
-
星号
*- 匹配前面的子表达式零次或多次。
-
加号
+- 匹配前面的子表达式一次或多次。
-
问号
?- 匹配前面的子表达式零次或一次。
-
大括号
{n,m}- 匹配前面的子表达式至少n次,至多m次。
-
方括号
[]- 表示一个字符集合,匹配其中任意一个字符。
-
反斜杠
\- 用于转义特殊字符,比如
\.匹配一个点字符,而不是任何字符。
- 用于转义特殊字符,比如
-
竖线
|- 表示选择,匹配竖线两边的任意一个表达式。
-
圆括号
()- 用于分组和捕获,可以改变优先级,也用于提取匹配的部分。
-
锚定符
^和$^匹配字符串的开始位置。$匹配字符串的结束位置。
-
单词边界
\b- 匹配单词的边界,即字母、数字到空白符或非字母、数字之间的转换。
-
反向单词边界
\B- 相反于
\b,匹配非单词边界的位置。
- 相反于
-
重复前导符
?,+,*的限定符?,{n,m},{n,},{,m}- 改变重复次数的贪婪度,例如
.*?是非贪婪的,会尽可能少地匹配。
- 改变重复次数的贪婪度,例如
-
字符类
\d数字[0-9]\D非数字[^\d]\w单词字符[a-zA-Z0-9_]\W非单词字符[^\w]\s空白字符[ \t\n\r\f\v]\S非空白字符[^\s]
-
预查与回顾
- 正向肯定预查
(?=...) - 正向否定预查
(?!...) - 反向肯定预查
(?<=...) - 反向否定预查
(?<!...)
- 正向肯定预查