gpt4 book ai didi

c# - .Net RegularExpressionValidator 与 Regex 类的匹配方式不同

转载 作者:太空狗 更新时间:2023-10-30 00:47:26 30 4
gpt4 key购买 nike

当我使用 .Net RegularExpressionsValidator 控件时,验证表达式与精确文本匹配。当我这么说时,我的意思是,对于我给它验证的字符串,如果它完全偏离正则表达式模式,则该字符串不会验证。

例如: (([0-1][0-9])|([2][0-3])):([0-5][0-9])如果在 RegularExpressionsValidator 控件中给出,将只匹配字符串,如 -> 12:00、07:15、23:59,但不匹配字符串 12:00foo、bar23:00、foobar。

现在,当我在后面的代码中使用 Regex 类并为其提供相同的正则表达式时,它会匹配包含匹配项和任何其他字符的所有字符串。

ex:(使用与上一个示例相同的正则表达式)如果我使用 Regex 类,则以下字符串将匹配 -> 12:00、07:15、23:59 和 12: 00foo(包含一个匹配项),bar23:00(包含一个匹配项)。

它们受到不同对待是否有原因,是否有办法模仿与 RegularExpressionValidator 控件相同的行为?

提前致谢!

最佳答案

发生的事情是正则表达式验证器将您的字符串作为一行文本处理。它隐式地将 ^ 和 $ 匹配器放在正则表达式的开头。

这就像在说:

^(([0-1][0-9])|([2][0-3])):([0-5][0-9])$

Regex 类 中的上述表达式将产生与验证器控件相同的结果。

关于c# - .Net RegularExpressionValidator 与 Regex 类的匹配方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/678698/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com