正则表达式是对字符串进行操作;
1、.:匹配除了
以外的任意单个字符;空格也行匹配,但注意一个点只匹配一个字符(汉字也算);
当出现有换行的时候:
a)单行模式:.能匹配
;
vs里的单行模式:Regex.Matches/Match("","",RegexOptions.Singleline);
b)在换行处的正则表达式:[sS],即空格或非空格;
2、[]:匹配中括号中的任意一个字符,b[aeiou]g,b[a-zA-Z]g;但注意中括号也只匹配一个字符;
3、|:竖线前面的或竖线后面的
z|food:z或者food;
(z|f)ood:zood或者food;
*:匹配0至多个在它之前的子表达式,和通配符*没关系。例如正则表达式“zo*”(等同于z(o)*)能匹配 “z” 、“zo”以及 “zoo”;因此“.*”意味着能够匹配任意字符串。"z(b|c)*"→zb、zbc、zcb、zccc、zbbbccc。"z(ab)*"能匹配z、zab、zabab(用括号改变优先级)。
+ :匹配前面的子表达式一次或多次,和*对比(0到多次)。例如正则表达式9+匹配9、99、999等。 “zo+”能匹配 “zo”以及 “zoo” ,不能匹配"z"。
? :匹配前面的子表达式零次或一次。例如,“do(es)?” 可以匹配 “do” 或 “does” 。一般用来匹配“可选部分”。(终止贪婪模式)
{n} :匹配确定的 n 次。“zo{2}”→zoo。例如,“e{2}” 不能匹配“bed”中的“e”,但是能匹配“seed”中的两个“e”。 //seeeed,不可以。
{n,} :至少匹配n次。例如,“e{2,}”不能匹配“bed”中的“e”,但能匹配 “seeeeeeeed”中的所有“e”。
{n,m} :最少匹配 n 次且最多匹配 m 次。“e{1,3}”将匹配“seeeeeeeed”中的前三个“e”。 {2,5}//bed,seed,seeed;beeeeed错误。
限定符:限定前面的正则表达式出现的次数。
^(shift+6) :匹配一行的开始。例如正则表达式“^regex”能够匹配字符串“regex我会用”的开始,但是不能匹配“我会用regex”。
^另外一种意思:非!([^0-9])在中括号中,表示非
$ :匹配行结束符。例如正则表达式“浮云$” 能够匹配字符串“一切都是浮云”的末尾,但是不能匹配字符串“浮云呀”
d:代表一个数字,等同于[0-9] <\d> →d
D:代表非数字,等同于[^0-9]
s:代表换行符、Tab制表符等空白字符 ,(空格、回车、制表符)
(.无法匹配
)
S:代表非空白字符(a0%$@@)。
w:匹配字母或数字或下划线或汉字,即能组成单词的字符,除%&#@!$等字符。[a-zA-Z0-9_汉字]
W:非w ,等同于[^w] %
d:digital;s:space、w:word。大写就是“非”
.net中的正则表达式:
正则表达式(Regular Expression)的主要类:Regex
常用的3种情况:(C#语法)
判断是否匹配:Regex.IsMatch(“字符串”,”正则表达式”);
字符串提取:Regex.Match(“字符串”,“要提取的字符串的正则表达式”);//只能提取一个(提取一次)
字符串提取(循环提取所有): Regex.Matches(),(可以提取所有匹配的字符串。)
字符串替换:Regex.Replace(“字符串”,”正则”,”替换内容”);
注意:两个双引号能转义成一个双引号;