概述:
正则表达式使用过一种数学算法来解决计算机程序中的文本检索、匹配等问题,正则表达式语言是一种专门用于字符串处理的语言。在很多语言中都提供了对它的支持。
用处:
- 检索:通过正则表达式,从字符串中获取我们想要的部分。
- 匹配:判定给定的字符串是否符合正则表达式的过滤逻辑,判断用户输入的密码、邮箱格式是否合法。
正则表达式的组成:由普通字符和特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。
操作正则表达式的方法和委托:
- 静态方法IsMatch:(返回值为一个布尔类型,用于判断指定字符串是否与正则表达式字符串相匹配,有三个重载)
- bool IsMatch(string input,string pattern); 参数: input: 要搜索匹配项的字符串。 pattern: 要匹配的正则表达式。 返回结果: 如果正则表达式找到匹配项为true,否则为false。
- bool IsMatch(string input,string pattern,RexgexOptions options); 参数: input: 要搜索匹配项的字符串。 pattern: 要匹配的正则表达式。 options: 枚举值的一个按位组合,这些枚举值提供匹配选项。 返回结果: 如果正则表达式找到匹配项为true,否则为false。
- bool IsMatch(string input,string pattern,RexgexOptions options,TimeSpan matchTimeout); 参数: input: 要搜索匹配项的字符串。 pattern: 要匹配的正则表达式。 options: 枚举值的一个按位组合,这些枚举值提供匹配选项。 matchTimeout: 超时间隔,指示该方法不应该超时。 返回结果: 如果正则表达式找到匹配项为true,否则为false。
- 静态方法Match:用来搜索字符串中指定正则表达式的第一个匹配项。返回一个包含有相关匹配信息的对象
- Match(string input,string pattern);
- Match(string input,string pattern,RexgexOptions options);
- Match(string input,string pattern,RexgexOptions options,TimeSpan matchTimeout);
- 静态方法Mathes:用来搜索字符串中指定正则表达式的所有匹配项。返回所有匹配项
- Mathes(string input,string pattern);
- Mathes(string input,string pattern,RexgexOptions options);
- Mathes(string input,string pattern,RexgexOptions options,TimeSpan matchTimeout);
- Replaces方法:替换字符串中与正则表达式匹配的子字符串。(会改变源字符串)
- 第一个参数 源字符串
- 第二个参数 正则表达式
- 第三个参数 要替换进去的字符串
- 静态方法Spilt():拆分文本,使用正则表达式所匹配到的字符 的位置拆分文本。
定位元字符:
字符 | 说明 |
---|---|
\b | 匹配单词的开始或结束 |
\B | 匹配非单词的开始或结束 |
^ | 匹配必须出现在字符串的开头或行的开头 |
$ | 匹配必须出现在 以下位置:字符串结尾,字符串结尾\n之前或行的结尾(会寻找最近的基本语法元字符) |
\A | 指定匹配必须出现在字符串的开头(忽略Multiline选项) |
\z | 指定匹配必须出现在字符串的结尾(忽略Multiline选项) |
\Z | 指定匹配必须出现在字符串的结尾或字符串结尾处的\n之前(忽略Multiline 选项) |
\G | 指定匹配必须出现在上一个匹配借宿的地方。与Match.NexMatch()一起使用时,此断言确保所有匹配都是连续的 |
基本语法元字符:
字符 | 说明 |
---|---|
. | 匹配除换行符外的任意字符 |
\w | 匹配字母、数字、下划线、汉字 (指大小写字母、0-9数字、下划线) |
\W | \w的补集(除指大小写字母、0-9数字、下划线之外) |
\s | 匹配任意空白字符 (包括换行符/n、回车符/r、制表符/t、垂直制表符/v、换页符/f) |
\S | \s的补集 |
\d | 匹配数字(0-9) |
\D | 表示\d的补集 |
(在正则表达式中,\是转义字符,. *是元字符)
反义字符:(中括号基本代表一个符合这个规则的字符)
字符 | 说明 |
---|---|
[abc] | 匹配字符中括号之间的任意一个字符 |
[a-c] | a字符到c字符之间的任意字符 |
[^x] | 匹配除x之外的所有字符 |
[^adwz] | 匹配除了adwz这几个字符以外的任意字符 |
重复描述字符:
字符 | 说明 |
---|---|
{n} | 匹配前面的字符n次· |
{n,} | 匹配前面的字符n次或多余n次 |
{n,m} | 匹配前面的字符n到m次 |
? | 重复零次或一次 |
+ | 重复一次或更多次 |
* | 重复零次或更多次 |
择一匹配符:
字符 | 说明 |
---|---|
| | 将两个匹配条件进行逻辑'或'(Or)运算。 |
对正则表达式进行分组:用小括号来指定表达式 ,将每一个小括号括起来的
表达式作为一个元字符对待