C#正则表达式
Posted ogre程序猿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#正则表达式相关的知识,希望对你有一定的参考价值。
01
正则表达式的基础梳理
字符 | 描述 |
\ |
转义字符,将一个具有特殊功能的字符转义为一个普通字符,或反过来 |
^ |
匹配输入字符串的开始位置 |
$ | 匹配输入字符串的结束位置 |
* | 匹配前面的 0次 或 多次 的子表达式 |
+ | 匹配前面的 1次 或 多次 的子表达式 |
? |
匹配前面的 0次 或 1次 子表达式 |
{n} | n是一个非负整数,匹配前面的n次子表达式 |
{n,} | n是一个非负整数,至少匹配前面的n次 子表达式 |
{n,m} | m和n均为非负整数,其中n<=m,最少匹配 n次且最多 匹配m次 |
? | 当该字符紧跟在其他限制符(*,+,?,{n},{n,m}) 后面时,匹配模式尽可能少的匹配所搜索的 字符串 |
. |
匹配除“\n”之外的任何单个 |
(pattern) | 匹配pattern并获取这一匹配 |
(?:pattern) | 匹配pattern但不获取匹配结果 |
(?=pattern) | 正向预查,在任何匹配pattern的字符串开始处 匹配查找字符串 |
(?!pattern) | 负向预查,在任何不匹配pattern的字符串开始 处匹配查找字符串 |
x|y | 匹配x或y。例如:'z|food'能匹配“z”或“food”, ‘(z|f)ood’则匹配“zood”或“food” |
[xyz] | 字符集合。匹配所包含的任意一个字符。 例如:‘[abc]’可以匹配“plain”中的‘a’ |
[^xyz] |
负值字符集合。匹配未包含的任意字符。 例如:‘[^abc]’可以匹配“plain”中的‘p’ |
[a-z] | 匹配指定范围内的任意字符。 例如:‘[a-z]’可以匹配‘a’到‘z’范围内的任意 小写字母字符 |
[^a-z] | 匹配不在指定范围内的任意字符。 例如:‘[^a-z]’可以匹配不在‘a’~'z'内的任意字符 |
\b |
匹配一个单词边界,指单词和空格间的位置 |
\B |
匹配非单词边界 |
\d |
匹配一个数字字符,等价于[0-9] |
\D |
匹配一个非数字字符,等价于[^0-9] |
\f |
匹配一个换页符 |
\n |
匹配一个换行符 |
\r |
匹配一个回车符 |
\s |
匹配任何空白字符,包含空格、制表符、 换页符等 |
\S |
匹配非任何空白字符 |
\t |
匹配一个制表符 |
\v |
匹配一个垂直制表符。等价于\x0b和\cK |
\w |
匹配包括下划线的任何单词字符。 等价于'[A-Za-z0-9_]' |
\W |
匹配任何非单词字符。 等价于'[^A-Za-z0-9_]' |
说明:由于正则表达式中“ \ ”、“ ? ”、“ * ”、“ ^ ”、“ $ ”、“ + ”、“(”、“)”、“ | ”、“ { ”、“ [ ”等字符已经具有一定特殊意义,如果需要用它们的原始意义,则应该对它进行转义。
02
Regex类常用的方法
静态Match方法
1
使用静态Match方法,可以得到源中第一个匹配模式的连续子串。
静态方法Macth的方法有两个重载,分别是
方法重载
Regex.Macth(string input, string pattern);
Regex.Macth(string input, string pattern, RegexOptions options);
参数说明
第一种重载的参数表示:输入、模式
第二种重载的参数表示:输入、模式、RegexOptions枚举的“按位或”组合
RegexOptions枚举的有效值是:
Complied表示编译此模式
CultureInvariant表示不考虑文化背景
ECMAScript表示符合ECMAScript,这个值只能和IgnoreCase、Multiline、Complied连用
ExplicitCapture表示只保存显式命名的组
IgnoreCase表示不区分输入的大小写
IgnorePatternWhitespace表示去掉模式中的非转义空白,并启用由#标记的注释
Multiline表示多行模式,改变元字符^和$的含义,它们可以匹配行的开头和结尾
None表示无设置,此枚举项没有意义
RightToLeft表示从右向左扫描、匹配,这时,静态的Match方法返回从右向左的第一个匹配
Singleline表示单行模式,改变元字符.的意义,它可以匹配换行符
注意:Multiline在没有ECMAScript的情况下,可以和Singleline连用。Singleline和Multiline不互斥,但是和ECMAScript互斥。
静态的Matchs方法
2
这个方法的重载形式同静态的Match方法,返回一个MatchCollection,表示输入中,匹配模式的匹配的集合。
静态的IsMatch方法
3
此方法返回一个bool,重载形式同静态的Matches,若输入中匹配模式,返回true,否则返回false。
可以理解为:IsMatch方法,返回Matches方法返回的集合是否为空。
以上是关于C#正则表达式的主要内容,如果未能解决你的问题,请参考以下文章