详细解决方案
正则表达式中(RegExp)的字符和转译
热度:7 发布时间:2024-02-09 22:13:54.0
正则表达式中常用的特殊字符:
符号 |
含义 |
^ |
匹配的起始位置,^在 [ ] 中表示反义 |
$ |
匹配的结束位置 |
. |
可以任意匹配任意一个字符 ,[ ] 中的 . 是字符 . |
? |
匹配前面的字符0次或一次,{0,1};所有的贪婪匹配,后面加个?,就是非贪婪匹配,情景为:当前后有别的内容,需要对中间的内容进行匹配时,先匹配最小的 |
+ |
匹配前面的字符一次或更多次,至少有一次{1, } |
* |
匹配前面的字符n次,可看作通配符,{0, } |
() |
群组,将圆括号内的匹配放置到一个组内,$1就是第一个群组,$2就是第二个群组,$3就是第三个群组… ,使用match()时,如果不加全局,则除返回找到的元素外,还返回群组的元素 |
{n} |
匹配前面的字符n次;当n为0时,意味着匹配一个空字符,即”“ |
{n,} |
匹配前面的字符至少n次 |
{n,m} |
匹配前面的字符至少n次,最大允许m次,默认为贪婪匹配 ,先匹配最大的 |
[ ] |
[ ] 里面内容可以任意匹配一个字符,可以用0-9 a-z A-Z |
[ ^ ] |
在[]中第一位使用 ^,表示除了 ^ 后面的字符外都满足; ^ 如果在 [ ] 不是第一位,就表示字符 ^ |
| |
或者,可以用来匹配多个字符或者另外的字符,如果 |
\ |
通常用作转义字符 |
正则表达式中常用的转义字符序列:
字符序列 |
含义 |
\d |
代表数字 [ 0-9 ] |
\D |
代表非数字 [ ^0-9 ] |
\w |
表示任何字母、数字、下划线 [0-9a-zA-Z_] |
\W |
表示任何非字母、数字、下划线 [^0-9a-zA-Z_] |
\s |
表示单个空白字符,如空格或制表符 |
\S |
表示单个非空白字符 |
正则表达式中常用的转义序列:
字符序列 |
含义 |
\n |
换行 |
\r |
回车 |
\b |
退格符 |
\t |
水平制表符,Tab键 |
\\ |
反斜杠符 |
\[ |
左中括号 |
\] |
右中括号 |
\’ |
单引号 |
. |
点 |
断言:
表达式 ???? |
意义 |
(?=X) |
先行断言。仅当子表达式 X 在 此位置的右侧匹配时才继续匹配。例如,\w+(?=\d) 与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。 |
(?!X) |
先行断言。仅当子表达式 X 不在 此位置的右侧匹配时才继续匹配。例如,例如,\w+(?!\d) 与后不跟数字的单词匹配,而不与该数字匹配 。 |
(?<=X) |
后发断言。仅当子表达式 X 在 此位置的左侧匹配时才继续匹配。例如,(?<=19)99 与跟在 19 后面的 99 的实例匹配。此构造不会回溯。 |
(?<!X) |
后发断言。仅当子表达式 X 不在此位置的左侧匹配时才继续匹配。例如,(?<!19)99 与不跟在 19 后面的 99 的实例匹配 |