正则表达式
基础正则表达式
-
最简单的正则:关键字原文
/aaa/
-
字符集:中括号写备选字符,一个中括号里只匹配一个字符,中括号里的字符是
或
关系
/1[3456789]/
/[A-Za-z0-9]/
/[我沃握卧][草操艹擦曹]/
简写:连续字符可以用 -
例:/[0-9]/ /[a-z]/ /[A-Za-z]/ /[\u4e00-\u9fa5]/ (一个汉字)
取反:除了xxx之外 ^
例:/[^47]/
// 取反
/a[^bc]d/ // 中间字符不是 b 或 c
- 预定义字符集:一个字符集只能匹配一个字符
\d
一位数字 /[0-9]/
\w
一位字母数字或下划线 /[A-Za-z0-9_]/
\s
一个空格
.
通配符,任意字符,除了换行符
- 量词
{m,n} {m,} {m} ? * +
/\d{6,8}/ // 取6-8位的数字
/1[3456789]?/ // ? 字符集匹配的字符可有可无,但最多匹配一个
/我34\d*/ // * 字符集匹配的字符可有可无,多了不限
/\d\s[a-z]+/ // + 字符集匹配的字符至少一个,多了不限
- 选择和分组
|
或()
分组
/\d{6,8}|\d{2,4}/
/(\d[a-z]){6,8}/
量词作用域()
里的字符集,6-8 组数字小写字母的组合
- 边界匹配,匹配
^
开头$
结尾
/^\s+|\s+$/
开头的空字符或结尾的空字符
常用正则示例
- 手机号正则:
/(\+86|0086)?\s*1[3456789]\d{9}/