Asp.net 如何将两个正则表达式合并为一个正则表达式?
在ASP.NET中使用时,我需要将两个正则表达式合并为一个正则表达式,它不允许多个实例 如何将以下两个正则表达式合并为一个正则表达式Asp.net 如何将两个正则表达式合并为一个正则表达式?,asp.net,regex,unobtrusive-javascript,Asp.net,Regex,Unobtrusive Javascript,在ASP.NET中使用时,我需要将两个正则表达式合并为一个正则表达式,它不允许多个实例 如何将以下两个正则表达式合并为一个正则表达式 .*?@(?!.*?\.\.)[^@]+$ [\x00-\x7F] 第一个正则表达式检查电子邮件的域部分中是否没有2个连续点,第二个正则表达式检查所有字符是否为ascii 我认为把它们连接起来可能很容易,比如(.*?(.*?\.\)[^@]+$)([\x00-\x7F]),但这不起作用 这是以前关于这个问题的帖子 编辑:我正在使用reglarexpression
.*?@(?!.*?\.\.)[^@]+$
[\x00-\x7F]
第一个正则表达式检查电子邮件的域部分中是否没有2个连续点,第二个正则表达式检查所有字符是否为ascii
我认为把它们连接起来可能很容易,比如(.*?(.*?\.\)[^@]+$)([\x00-\x7F])
,但这不起作用
这是以前关于这个问题的帖子
编辑:我正在使用reglarexpression属性装饰viewmodel的字符串属性,该属性将使用unobtrusive呈现到javascript中,因此必须使用javascript进行验证。我在最初的帖子中没有提到这一点您可以使用:
^[\x00-\x7F]+?@(?!.*?\.\.)(?=[\x01-\x7F]+$)[^@]+$
你可以用这个正则表达式
^[\x00-\x7F-[@]]*?@(?!.*?\.\.)[\x00-\x7F-[@]]+$
或者,如果要在@
之前至少匹配一个字符:
^[\x00-\x7F]+@(?!.*?\.\.)[\x00-\x7F-[@]]+$
请注意,[\x00-\x7F]
还包括@
符号。在C#regex中,我们可以使用character类中的-[@]
从范围中减去它
我相信,你不需要锚,因为你是在一个
这里是一个,删除第二个
@
,您将拥有一个匹配项。您的正则表达式也将匹配444@ff@我记得你说过环顾四周很贵,不是吗我不记得我是在什么问题上说的。但总的来说是的,如果有其他选择,那么就避免环顾四周。但是OP已经在使用前瞻(?!.*?\。\)
谢谢您的回答。不幸的是,我只能选择一个答案。我在上面的回答中投了你的赞成票-我的单元测试通过了,但实际上在第页上不起作用。我将编辑我的问题并说明我的意思。我修复了它,因为我忘记了在第一个范围出现时添加锚定和字符类减法。但是,既然您更新了这个问题,说明正则表达式需要使用javascript,我同意这是行不通的。