我正面臨一個匹配問題...我試圖在不正確的郵件地址中標記多個點,以便只顯示相關的點:
mike.smith@yahoo..com
mike....smith@yahoo.com
我的方法(\.(?!(\.\w)))
對連續的幾個點有效,但仍然與 [email protected] 中的單個點匹配
你有想法嗎?任何幫助表示贊賞。
uj5u.com熱心網友回復:
如果您想匹配電子郵件地址中的這些點,假設應該至少存在一個 @ 字符,并且支持使用后向顯示:
請注意,這不會驗證電子郵件格式。
\.(?=\.[^@\s]*@)|(?<=@[^\s@]*\.)\.
解釋
\.
匹配一個點(?=\.[^@\s]*@)
正向前瞻,直接在右側斷言一個點,在右側斷言一個 @ 字符,而不跨越空白字符|
或者(?<=@[^\s@]*\.)
在匹配點之前直接在左側斷言一個 @ char 和一個點\.
匹配一個點
正則運算式演示
uj5u.com熱心網友回復:
\.{2,}
將匹配兩個或多個連續點。
https://regex101.com/r/In9Qzm/1
uj5u.com熱心網友回復:
您可以使用
\.(?=\. \w)
請參閱正則運算式演示。
詳情:
\.
- 一個點(?=\. \w)
- 與緊隨其后的一個或多個點和一個單詞字符的位置相匹配的正向前瞻。
請注意,這\.\B
將洗掉位于字串末尾或后跟非單詞字符(即除字母、數字或下劃線之外的字符)的任何點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/527121.html