正则表达式不包含属性(2)


//零宽度正预测先行断言 
//String s = "b(cd|de)(.*)"; 
String s = "b(?=cd|de)(.*)"; 
Match m = Regex.Match("eabcdfg", s); 
MessageBox.Show(m.Value); 
MessageBox.Show(m.Groups[1].Value);//区别 cd  cdfg

这种写法和注释掉的写法是有区别的,区别就是“零宽度”,这种写法会被捕获,也就是不占一个Group。

(?!子表达式)       零宽度负预测先行断言。

!表示非,就是不包含,同样是零宽度,不会被捕获。

(?<=子表达式)    零宽度正回顾后发断言。

例:(?<=19)\d{2}\b

“1851 1999 1950 1905 2003”中的“99”、“50”和“05”

(?<!子表达式)     零宽度负回顾后发断言。

例:(?<!19)\d{2}\b

“1851 1999 1950 1905 2003”中的“51”和“03”

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wfwjpf.html