Asp.net 如何将两个正则表达式合并为一个正则表达式?

Asp.net 如何将两个正则表达式合并为一个正则表达式?,asp.net,regex,unobtrusive-javascript,Asp.net,Regex,Unobtrusive Javascript,在ASP.NET中使用时,我需要将两个正则表达式合并为一个正则表达式,它不允许多个实例 如何将以下两个正则表达式合并为一个正则表达式 .*?@(?!.*?\.\.)[^@]+$ [\x00-\x7F] 第一个正则表达式检查电子邮件的域部分中是否没有2个连续点,第二个正则表达式检查所有字符是否为ascii 我认为把它们连接起来可能很容易,比如(.*?(.*?\.\)[^@]+$)([\x00-\x7F]),但这不起作用 这是以前关于这个问题的帖子 编辑:我正在使用reglarexpression

在ASP.NET中使用时,我需要将两个正则表达式合并为一个正则表达式,它不允许多个实例

如何将以下两个正则表达式合并为一个正则表达式

.*?@(?!.*?\.\.)[^@]+$
[\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,我同意这是行不通的。