簡體   English   中英

正則表達式代碼說明

[英]Regex code explanation

誰能告訴我這行代碼的含義,我知道它在尋找正則表達式,但我不明白最后的含義。

System.Text.RegularExpressions.Regex("(?<=<Last>).*(?=</Last>)");

提前致謝。

(?<=<Last>)是斷言的外觀。 這意味着它匹配.*僅在前面有<Last>

(?=</Last>)是一個前瞻性斷言。 確保在.*之后有一個<\\Last> .*

可以在msdn上找到有關.net中正則表達式的更多信息。

注釋,提供的示例不是完整的代碼行( 請參閱msdn上的Class Regex

這應該是這樣的一部分:

Regex MyRegex = new System.Text.RegularExpressions.Regex("(?<=<Last>).*(?=</Last>)");

創建一個新的Regex對象。

另一種可能性是使用正則表達式而不創建正則表達式對象,靜態方法isMatch看起來像這樣:

System.Text.RegularExpressions.Regex.IsMatch(StringToSearchIn, "(?<=<Last>).*(?=</Last>)")

這返回true或false。

如前所述,模式(?<=<Last>).*(?=</Last>)匹配最長的文本字符串,其后跟<Last></Last> ,並帶有正向周圍

但是請注意,由於貪婪 ,此匹配的字符串本身也可以包含<Last>和/或</Last>

它基本上是在某些xml文檔(包括其內容)中尋找<Last>標簽。

?<=是斷言的外觀。 請參閱此處以獲取詳細說明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM