regex - 正则表达式不匹配新行

标签 regex unobtrusive-validation

我有以下正则表达式:

"^((?!([\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])*$

regex101 demo .

关于regex - 正则表达式不匹配新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30362253/

相关文章:

Python文件重命名语法错误

jquery - 在没有 key 的情况下将错误添加到 JQuery 不引人注目的验证摘要

c# - MVC Unobtrusive validation data-val-* markup attributes not being generated

asp.net-mvc-3 - MVC 3 不显眼的验证 - 有条件地禁用/启用验证

asp.net-mvc - jsFiddle 中的 jQuery 不显眼的自定义适配器和方法

java - MongoDB $regex 查询 "end with"特定字符

javascript - 正则表达式不能在 c# 中工作,但可以在 javascript 中工作

data-annotations - knockout 模板绑定(bind)中不显眼的客户端验证

regex - 如何在 VIM 中只小写带引号的字符串

Javascript 正则表达式 - 字符串到 RegEx 对象