如何将两个正则表达式合并为一个?
how can I join two regex into one?
我有两个正则表达式需要合并为一个,因为我在 ASP.NET 中使用 RegularExpressionAttribute 并且它不允许多个实例。
如何将以下两个正则表达式合并为一个?
.*?@(?!.*?\.\.)[^@]+$
[\x00-\x7F]
第一个检查电子邮件的域部分是否没有 2 个连续的点,第二个正则表达式检查所有字符都是 ascii
我认为这可能像 (.*?@(?!.*?\.\.)[^@]+$)([\x00-\x7F])
那样将它们连接起来一样简单,但这行不通
这里是 之前关于这个问题的 post
编辑:我正在使用 reglarexpression 属性装饰我的视图模型的字符串 属性 并且使用不显眼的方式将其呈现为 javascript 因此它必须验证使用 javascript。我在最初的 post
中没有提到这一点
您可以使用:
^[\x00-\x7F]+?@(?!.*?\.\.)(?=[\x01-\x7F]+$)[^@]+$
你可以只使用这个正则表达式
^[\x00-\x7F-[@]]*?@(?!.*?\.\.)[\x00-\x7F-[@]]+$
或者,如果你想在 @
之前匹配至少 1 个字符:
^[\x00-\x7F]+@(?!.*?\.\.)[\x00-\x7F-[@]]+$
请注意 [\x00-\x7F]
还包括 @
符号。在 C# 正则表达式中,我们可以在字符 class.
中使用 -[@]
从范围中减去它
我相信你不需要锚点,因为你在 RegularExpressionAttribute
中使用它。
这是一个demo on regexstorm.net,去掉第二个@
,你就会得到一个匹配。
我有两个正则表达式需要合并为一个,因为我在 ASP.NET 中使用 RegularExpressionAttribute 并且它不允许多个实例。
如何将以下两个正则表达式合并为一个?
.*?@(?!.*?\.\.)[^@]+$
[\x00-\x7F]
第一个检查电子邮件的域部分是否没有 2 个连续的点,第二个正则表达式检查所有字符都是 ascii
我认为这可能像 (.*?@(?!.*?\.\.)[^@]+$)([\x00-\x7F])
那样将它们连接起来一样简单,但这行不通
这里是
编辑:我正在使用 reglarexpression 属性装饰我的视图模型的字符串 属性 并且使用不显眼的方式将其呈现为 javascript 因此它必须验证使用 javascript。我在最初的 post
中没有提到这一点您可以使用:
^[\x00-\x7F]+?@(?!.*?\.\.)(?=[\x01-\x7F]+$)[^@]+$
你可以只使用这个正则表达式
^[\x00-\x7F-[@]]*?@(?!.*?\.\.)[\x00-\x7F-[@]]+$
或者,如果你想在 @
之前匹配至少 1 个字符:
^[\x00-\x7F]+@(?!.*?\.\.)[\x00-\x7F-[@]]+$
请注意 [\x00-\x7F]
还包括 @
符号。在 C# 正则表达式中,我们可以在字符 class.
-[@]
从范围中减去它
我相信你不需要锚点,因为你在 RegularExpressionAttribute
中使用它。
这是一个demo on regexstorm.net,去掉第二个@
,你就会得到一个匹配。