有人可以告诉我这行代码意味着什么,我知道它会查找正则表达式,但我最后并不理解这一点。
System.Text.RegularExpressions.Regex("(?<=<Last>).*(?=</Last>)");
提前致谢。
答案 0 :(得分:5)
(?<=<Last>)
是断言的背后。这意味着只有前面有.*
<Last>
(?=</Last>)
是一个向前看的断言。确保<\Last>
.*
个关注者
有关.net中正则表达式的更多信息,请参见here on msdn。
注释,提供的示例不是完整的代码行(See Class Regex on msdn)
这应该是这样的一部分:
Regex MyRegex = new System.Text.RegularExpressions.Regex("(?<=<Last>).*(?=</Last>)");
创建一个新的Regex对象。
另一种可能性是使用正则表达而不创建正则表达式对象,使用静态方法isMatch
看起来像这样:
System.Text.RegularExpressions.Regex.IsMatch(StringToSearchIn, "(?<=<Last>).*(?=</Last>)")
返回true或false。
答案 1 :(得分:2)
如前所述,模式(?<=<Last>).*(?=</Last>)
匹配<Last>
前面的最长文本字符串,后跟</Last>
,后跟lookarounds。
但请注意,由于greediness,此匹配字符串本身也可以包含<Last>
和/或</Last>
...
答案 2 :(得分:1)
它基本上在某些xml文档中查找<Last>
标记,包括其内容。
?&lt; =看看断言背后。有关详细说明,请参阅here。