I am facing a matching problem... I am trying to mark the multiple dots in an incorrect mail address so that only the relevant dots appear:
[email protected]
[email protected]
My approach (\.(?!(\.\w)))
works correctly for several dots in a row, but still matches the single dot in [email protected]
Do you have an idea? Any help appreciated.
CodePudding user response:
If you want to match those dots in an email address assuming there should be at least an @ char present, and using a lookbehind is supported:
Note that this does not validate an email format.
\.(?=\.[^@\s]*@)|(?<=@[^\s@]*\.)\.
Explanation
\.
Match a dot(?=\.[^@\s]*@)
Positive lookahead, assert a dot directly to the right and an @ char to the right without crossing whitespace chars|
or(?<=@[^\s@]*\.)
Assert an @ char to the left and a dot directly before matching the dot\.
Match a dot
CodePudding user response:
\.{2,}
would match two or more consecutive dots.