推荐练习正则表达式的网站 regexr
表达式 | 含义 | 说明 |
---|---|---|
. | 任一字符 | 不含换行符 |
\. | 只匹配 . | \为转义符,让'.'变为普通的dot(点) |
\w | word charactor | 数字、字母、下划线 |
\W | \w的补集 | 除数字、字母、下划线之外 |
\d | 数字 | 等于[0-9] |
\D | 除数字外 | 包括空格 |
\s | 空白 | 空格、制表符、换行符 |
\S | \s的补集 | |
[] | 集合 | 任一存在与集合中的字符 |
[abc] | a或b或c | |
+ | 一次或多次 | 等于{1,} |
* | 零次或多次 | 等于{0,} |
? | 零次或一次 | 等于{0,1} |
\b | word boundary | 单词前后的边界 |
{1,4} | 1到4次 | 指定重复范围 |
{2} | 2次 | |
{2,} | 至少两次 |
分组匹配:(模式)
例子:
expression: /.+(h\w{3,}).+(h\w{3,})/g 匹配以h开头长度大于4的单词
text: romeo is handsome, and he is hardworking.
replace: romeo is $2, and he is $1.
result: romeo is hardworking, and he is handsome.
分组匹配但不捕获(?:模式)
第一个()为$1,第二个()为$2,但若将第一个使用(?:)后,则第一个无法用$捕获,第二个( )变为$1。
正向预查(?=模式)
(?=模式)正向肯定预查
(?!模式)正向否定预查
反向预查(JavaScript不支持)
比正向预查多个小于号,要放在待匹配模式的前面。例如:(?<=$)\d