我有以下正则表达式:
"^((?!([\w!#$%&'*+\-/=?\^_`{|}~]+(\.[\w!#$%&'*+\-/=?\^_`{|}~]+)*@((([\-\w]+\.)+[a-zA-Z]{2,4})|(([0-9]{1,3}\.){3}[0-9]{1,3})))).)*$"
但它也不匹配新行:
https://regex101.com/r/nT6wK0/1
有什么想法如何在有新行时使其匹配吗?
最佳答案
and 处的 .
实际上意味着
All but a line break character. (source)
将其替换为[\S\s]
,这意味着
All spacing characters and all non-spacing characters; so all characters.
然后看起来就可以了。您可以使用其他变体,例如 [\W\w]
、[\D\d]
、...
所以“正确的”正则表达式(请不要相信我的话,首先测试一下)是:
^((?!([\w!#$%&'*+\-/=?\^_`{|}~]+(\.[\w!#$%&'*+\-/=?\^_`{|}~]+)*@((([\-\w]+\.)+[a-zA-Z]{2,4})|(([0-9]{1,3}\.){3}[0-9]{1,3}))))[\S\s])*$
关于regex - 正则表达式不匹配新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30362253/