正则表达式
1. 字面值字符:
例如字母、数字、空格等,可以直接匹配它们自身。
2. 特殊字符:
例如点号 .
、星号 *
、加号 +
、问号 ?
等,它们具有特殊的含义和功能。 *
:匹配前面的模式零次或多次。 +
:匹配前面的模式一次或多次。 ?
:匹配前面的模式零次或一次。 \
:转义字符,用于匹配特殊字符本身。 .
:匹配任意字符(除了换行符)。 |
:用于指定多个模式的选择。
贪婪匹配
*
会匹配尽可能多的字符(贪婪匹配) *?
匹配尽可能少的字符(非贪婪匹配)
eg:
py
s = 'hello 1234567 world'
re.match('he.*?(\d+).*rld',s)
3. 字符类:
用方括号[]
包围的字符集合,用于匹配方括号内的任意一个字符。
4. 元字符:
例如 \d
、\w
、\s
等,用于匹配特定类型的字符,如数字、字母、空白字符等。
5. 量词:
例如 {n}
、{n,}
、{n,m}
等,用于指定匹配的次数或范围。
6. 边界符号:
例如 ^
、$
、\b
、\B
等,用于匹配字符串的开头、结尾或单词边界位置。 ^
:匹配字符串的开头。 $
:匹配字符串的结尾。 \b
:匹配单词边界。 \B
:匹配非单词边界。
实际例子:commit 规范
js
const commitRE =
/^((revert|wip|draft): )?(feat|fix|docs|style|refactor|perf|types|test|build|ci|chore)(\(.+\))?: .{1,50}/