gpt4 book ai didi

c# - 正则表达式允许额外的字符

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

当试图在 C# 中编写 Regex 表达式时,Regex 本身是正确的并且匹配字符串:

String telRegex = @"(^0[0-9]{10})|(\(0[0-9]{4}\)[0-9]{6}$)";
Match telRegexResult = Regex.Match(textBox1.Text, telRegex);
if (telRegexResult.Success) {
MessageBox.Show("Your Regex Matches!");
} else MessageBox.Show("Your Regex doesn't match!");

如果我输入“01446847362”,它会显示正则表达式匹配,这是预期的结果,但如果我也输入“01446847362word”,它也会显示它是正确的。

我可以在我的正则表达式中添加什么来让它被截断吗?

最佳答案

您的正则表达式包含一个交替,这意味着它捕获:

^0[0-9]{10}

或者:

\(0[0-9]{4}\)[0-9]{6}$

因此您会注意到,两边都不包括 两者 ^ 行的开头和 $ 行的结尾匹配,这就是您要求确保匹配整个字符串。

尝试以下操作,将 ^$ 移出交替(现在在其自己的组中):

String telRegex = @"^((0[0-9]{10})|(\(0[0-9]{4}\)[0-9]{6}))$";

关于c# - 正则表达式允许额外的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48498621/

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