使用單字邊界匹配文字模式(b) 時,如果模式包含特殊字元([ ]{}, ETC。為了避免這些問題,請考慮以下見解:
了解單字邊界
單字邊界出現在三個點:
簡單單字邊界的限制
使用b 假設特殊字元後的單字字元(w),這可能不是所需的
自適應單字邊界
此方法引入了動態左手和右手邊界:
re.search(r'(?:(?!\w)|\b(?=\w)){}(?:(?<=\w)\b|(?<!\w))'.format(re.escape('Sortes\index[persons]{Sortes}')), 'test Sortes\index[persons]{Sortes} test')
明確的單字邊界
此方法使用否定如果存在相鄰單字字符,則禁止匹配的環視:
re.search(r'(?<!\w){}(?!\w)'.format(re.escape('Sortes\index[persons]{Sortes}')), 'test Sortes\index[persons]{Sortes} test')
選擇正確的方法
自訂這些模式以符合特定的非單字字元(例如,僅字母或單字字元(例如,僅字母或空格)。
以上是如何處理正規表示式中特殊字元的詞邊界比對問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!