1. 干嘛的:用于描述这些规则的工具。记录文本规则的代码。
2. 解决什么问题:查找符合某些复杂规则的字符串的需要。
3. 符号
*:任意字符串 \b :单词分界处,只匹配一个位置。
. :除了换行符以外的任意字符。 \d : 匹配一个数字
{number} : 前面的字符连续重复number次。
\s :任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。
\w:匹配字母或数字或下划线或汉字等。
^ : 匹配字符串的开始
$: 匹配字符串的结束
字符转义: \ + 字符
* :重复零次或更多次
+ :重复一次或更多次
? :重复零次或一次
{n} :重复n次
{n,}:重复n次或更多次
{n,m}:重复n到m次
I : 分支条件。如果满足其中任意一种规则都应该当成匹配
() : 子表达式,分组。可作为一个整体处理。
\W :匹配任意不是字母,数字,下划线,汉字的字符
\S:匹配任意不是空白符的字符
\D:匹配任意非数字的字符
\B:匹配不是单词开头或结束的位置
[^x]:匹配除了x以外的任意字符
[^aeiou]:匹配除了aeiou这几个字母以外的任意字符
后向引用: 用于重复搜索前面某个分组匹配的文本。有组号,也可以自己制定组名。
(?<Word>\w+):把\w+的组名指定为Word了.
反向引用这个分组捕获的内容,你可以使用\k<Word>
查找在某些内容(但并不包括这些内容)之前或之后的东西:零宽断言