我需要確保指定字符(@
)連續重複不超過一次。它可以發生多次,但僅作爲單個@
字符,而不是@@
或更多。捕獲組是不必要的。匹配連續不超過@個字符的字符串
這些字符串應該匹配:
foobar
@foobar
[email protected]
[email protected]@baz
這些字符串不應該匹配:
@@foobar
[email protected]@bar
[email protected]@@baz
該引擎支持向前看符號和lookbehinds。
我已經試過用(?<[email protected])@([email protected])
這樣做了1次重複,但是((?<[email protected])@([email protected])|)
或(?<[email protected])@?([email protected])
顯然不會按照0或1次重復的意圖工作。
這種情況怎麼處理?
如果一行沒有任何@字符怎麼辦?它應該匹配還是不匹配? –
@ S.Imp它應該。這種情況列在*這些字符串應該匹配*。 – estus
堆棧溢出不是免費的爲您創建正則表達式的諮詢。你嘗試了什麼,它是怎麼出錯的,你做了什麼來嘗試解決這個問題? –