正則非貪婪匹配

2022-02-27 04:31:14 字數 867 閱讀 7965

string str = "註冊商: xiamen ename network technology corporation limited dba ename corp,"

+ "網域名稱伺服器: whois.ename.com,"

+ "相關**: "

+ "dns 伺服器: ns1.ename.net,"

+ "dns 伺服器: ns2.ename.net,"

+ "dns 伺服器: ns3.ename.net,"

+ "dns 伺服器: ns4.ename.net,"

+ "dns 伺服器: ns5.ename.net,"

+ "dns 伺服器: ns6.ename.net,"

+ "狀態: clientdeleteprohibited,"

+ "狀態: clienttransferprohibited,"

matchcollection match = reg.matches(str);

foreach (match m in match)

今天在寫個上面的正則,結果一直匹配不出東西來,原來是非貪婪模式的錯。這裡不說非貪婪模式的效率

一般我們在匹配,

例如在匹配這個的時候

string str="cnblogs";

regex reg = new regex(@"(?i)]*?href=(['""\s]?)([^'""\s]+)\1[^>]*?>")

[^>]*?非貪婪模式右邊是href也就是匹配到href才停止

而(?<=註冊商:)([^,]*?)這個正則([^,]*?)右邊內容是空,也就是沒有其他任何字元,所以就匹配空出來

記錄下來以便日後又忘記了

re 正則匹配的非貪婪匹配

非貪婪匹配 將盡可能少的匹配內容,當?出現在其他的重複次數後面時會將貪婪模式改為非貪婪模式。如 abc.abc.非貪婪匹配 盡可能少的匹配?號表示 號前面的字元出現0 無數個 號表示最少匹配 號表示 號前面的字元出現1 無數個 表示0 1個 print re.findall r ab aababba...

python非貪婪匹配 python正則非貪婪模式

那如果只想匹配1次怎麼辦呢,這就是正則中非貪婪模式的概念了 原理就是利用?與其他匹配次數規則進行組合 單個匹配規則 表示匹配0 n次 表示匹配1 n次 表示匹配0 1次 三者可組合成非貪婪模式匹配次數解析 簡而言之 它們必須結合左右的子串進行匹配,左邊正則必須非空,右邊正則可以為空,中心思想就是在匹...

貪婪匹配和非貪婪匹配

貪婪模式 在整個表示式匹配成功的前提下,盡可能多的匹配 非貪婪模式 在整個表示式匹配成功的前提下,盡可能少的匹配 重複匹配0次或1次 重複匹配0次或更多次 重複匹配1次或更多次 預設情況下是貪婪的!content abbbbc pattern re.compile r ab result patte...