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...