我正在努力使用正則運算式來檢測一個特殊字符(hashtag #)是否只包含在一個字串中一次。標簽前后的所有內容都是未知的,可以是任何符號(包括空格和特殊字符)。
例子:
# 火柴
## 不匹配
a12bc#1def65 火柴
a12bc##1def65 不匹配
a234341#1212 火柴
a23$. 4341#1 ._21&2 火柴
#a23$. 4341#1 ._21&2# 不匹配
我認為這很簡單(我不太擅長正則運算式)所以我試過了
#{1}
令人驚訝的是,這并不像我預期的那樣作業。此正則運算式也匹配 string ##。然后我嘗試了一些類似#{1}\b和的東西(#{1}\b|[^#{2}])。但是每次字串#不匹配或##匹配正則運算式時。
uj5u.com熱心網友回復:
此模式#{1}\b可以寫為#\b并且#僅在后跟單詞邊界時匹配。這并沒有考慮整條線的出現次數。
此模式(#{1}\b|[^#{2}])與之前相同,后跟一個交替|和否定字符類 [^#{2}],可以匹配除 chars 之外的單個字符# { 2 }
如果您不想匹配換行符,并匹配整個字串:
^[^\r\n#]*#[^\r\n#]*$
^字串的開始[^\r\n#]*可選擇匹配除換行符以外的任何字符或##匹配#字符[^\r\n#]*可選擇匹配除換行符以外的任何字符或#$字串結束
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/334558.html
標籤:正则表达式
上一篇:python名稱正則運算式
