普通字符:
- 匹配
"a"将匹配文本中的"a"字符: 示例:a匹配"a"
元字符:
-
\d匹配 任意数字字符 等价于[0-9]: 示例:\d匹配"1" -
\D匹配一个非数字字符 等价于[^0-9] -
\w匹配 任意字母数字字符: 示例:\w匹配"a" -
.匹配 任意字符(除了换行符): 示例:.匹配"x"
量词:
-
*:匹配前面的模式 0次或多次: 示例:a*匹配"","a","aa",zo*能匹配"z"以及"zoo"。 -
+:匹配前面的模式 1次或多次: 示例:a+匹配"a","aa",zo+能匹配"zo"以及"zoo",但不能匹配"z" -
?:匹配前面的模式 0次或一次: 示例:a?匹配"","a" -
{n}:匹配前面的模式 恰好 n 次: 示例:a{2}匹配"aa" -
{n,}:匹配前面的模式 至少 n 次: 示例:a{2,}匹配"aa","aaa" -
{n,m}:匹配前面的模式 至少 n 次且不超过 m 次 (n <= m): 示例:a{2,3}匹配"aa","aaa"
字符类:
-
[ ]:匹配括号内的 任意一个字符: 示例: 例如[aeiou]匹配字符串"google runoob taobao"中所有的e o u a字母。 -
[^ ]:匹配 除了括号内的字符以外的任意一个字符: 示例:[^aeiou]匹配字符串"google runoob taobao"中除了e o u a字母的所有字符
边界匹配:
-
^:匹配 字符串的开头: 示例:^a匹配"a"在"abcd"的开头 -
$:匹配 字符串的结尾: 示例:a$匹配"a"在"abcda"的结尾 -
\b:匹配 匹配一个单词边界,也就是指单词和空格间的位置: 示例:'er\b'可以匹配"never"中的'er',但不能匹配"verb"中的'er' -
\B:匹配 匹配非单词边界: 示例:'er\B'能匹配"verb"中的'er',但不能匹配"never"中的'er'
分组和捕获:
-
( ):用于 分组和捕获子表达式: 示例:(a)b捕获"a"并匹配"ab" -
(?: ):用于 分组但不捕获子表达式: 示例:(?:a)b匹配"ab"但不会捕获"a"
特殊字符:
-
\:转义字符,用于匹配 特殊字符本身: 示例:\\匹配"\" -
.:匹配 任意字符(换行符(\n、\r)) 相等于[^\n\r]: 示例:.已在元字符中给出 -
|:用于 指定多个模式的选择: 示例:a|b匹配"a"或"b"
常用
-
[A-Z]: 表示一个区间,匹配 所有大写字母 -
[a-z]: 表示 所有小写字母。 -
[\s\S]: 表示匹配所有。\s是匹配所有空白符,包括换行,\S非空白符(不包括换行)。 -
\w: 匹配字母、数字、下划线。等价于[A-Za-z0-9_] -
\d: 匹配任意一个阿拉伯数字(0 到 9)。等价于[0-9]
^[a-zA-Z0-9_-]{3,15}$
^表示匹配字符串的开头[a-zA-Z0-9_-]表示字符集,包含小写字母、大写字母、数字、下划线和连接字符 -{3,15}表示前面的字符集最少出现 3 次,最多出现 15 次,从而限制了用户名的长度在 3 到 15 个字符之间$表示匹配字符串的结尾