当尝试在C#中编写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!");
Run Code Online (Sandbox Code Playgroud)
如果我把"01446847362"它显示正则表达式匹配,这是预期的结果,但如果我也把"01446847362word",它也会表明它是正确的.
有什么我可以添加到我的正则表达式,以使它切断?
你的正则表达式包括一个替换,这意味着它捕获:
^0[0-9]{10}
Run Code Online (Sandbox Code Playgroud)
要么:
\(0[0-9]{4}\)[0-9]{6}$
Run Code Online (Sandbox Code Playgroud)
你会因此注意到,任何一方都包括两对^线的起点和$终点的线相匹配,这是你需要什么,以确保整个字符串匹配.
试试以下,其中移动^和$交替(这是现在自己的组内)外:
String telRegex = @"^((0[0-9]{10})|(\(0[0-9]{4}\)[0-9]{6}))$";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |