如果有人問過這個問題,我深表歉意,但我一直在尋找答案,但無法為我的用例找到答案。
我正在嘗試撰寫一個正則運算式陳述句來洗掉數字或包含數字的單詞,前提是它們不是主題標簽。我能夠成功匹配其中包含數字的單詞,但似乎無法撰寫一個忽略以主題標簽開頭的單詞的條件。
這是我一直用來嘗試尋找解決方案的測驗字串:
發生 bit mediacon #2022ppopcon 今天穿著 stell naman #sb19official 123 因為 h3llo 也是 12 或 23old
我需要一個正則運算式命令來捕獲 123、h3llo、also12 和 23old,但忽略 #2022ppopcon 和 #sb19official 字串。
我嘗試了以下正則運算式陳述句。
(#\w \d \w*)|(\w \d \w*)
這成功地捕獲了第 1 組中的主題標簽和第 2 組中的非主題標簽,但我無法弄清楚如何使其僅選擇第 2 組。
(?<!#)\w*\d \w*
這會排除主題標簽之后的第一個字符,但仍會捕獲主題標簽字串中的所有剩余字符。例如在字串#2022ppopcan 中,它忽略#2 并捕獲022ppopcan。
我已經嘗試過其他我不記得的字串了。我覺得我很接近但錯過了一些重要的東西。任何幫助將不勝感激。
uj5u.com熱心網友回復:
你可能會使用
(?<!\S)[^\W\d]*\d\w*
(?<!\S)在左側斷言空白邊界[^\W\d]*匹配除數字之外的可選單詞字符\d至少匹配一個數字\w*匹配可選的單詞字符
查看正則運算式演示。
如果您想允許部分匹配,您可以使用否定的lookbehind 來不斷言 a#后跟單詞邊界:
(?<!#)\b[^\W\d]*\d\w*
查看另一個正則運算式演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/453377.html
