我目前正在將字串與正則運算式匹配。我的模式是:
"(?<=\p{Alnum}|\p{Punct})(\p{Alnum} \p{Punct}{1})"
我將它與字串匹配:
"https://www.google.com/"
我對上述正則運算式和字串的期望結果是:
https:, www., google., com/
除了“https:”之外,我能夠成功獲得所有匹配項。在這種情況下,它會給出 'ttps:' 而不是所需的 'https:'
我無法理解我哪里出錯了。誰能幫我解決這個問題?
uj5u.com熱心網友回復:
您可以使用
(?<![^\p{Alnum}\p{Punct}])(\p{Alnum} \p{Punct})
請參閱在線正則運算式演示。
(?<![^\p{Alnum}\p{Punct}]) 否定的lookbehind 匹配一個位置,該位置不是緊跟在字母數字和標點字符之外的字符之前。
請注意,您的正則運算式需要緊靠左側的字母數字或標點字符,因此無法匹配字串位置的開頭。
請注意,這{1}始終是多余的,您可以在我的“撰寫更簡潔的正則運算式”YT 視頻中看到更多關于正則運算式冗余的資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/453379.html
