對于以“@”開頭的用戶名和以下規則,我需要一些正則運算式幫助:
用戶名僅包含 \w 符號。
如果字串包含除“@”之外的任何非單詞字符,則匹配,例如
- 匹配@username
@username!&?()*^ - 但不要匹配
@username@username,@username!@usernameor@username!%^@(如果字串至少還有一個“@”)。
- 匹配@username
如果字串在“@”之前有任何符號,則不匹配,例如
- 不要在
not@usernameor中匹配@username!@username。
- 不要在
現在我有:
(?<!\w)@(\w{4,15})\b(?!@)
如果它僅位于用戶名之后,則僅排除之前的 \w 符號和“@”。
uj5u.com熱心網友回復:
您可以在左側斷言空白邊界,并在右側的行中斷言不@。
(?<!\S)@(\w{4,15})\b(?![^@\n]*@)
解釋
(?<!\S)在左側斷言空白邊界@從字面上匹配(\w{4,15})\b捕獲 4-15 個單詞字符,后跟單詞邊界(?![^@\n]*@)斷言除 @ 或右側的換行符后跟 @ 之外的任何字符的可選重復都不是可選的
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/479768.html
