正则表达式匹配3位数字和符号,没有匹配

时间:2014-05-15 16:53:34

标签: regex

我一直在使用正则表达式定义(语言" Basic")但无法使其正常工作。 当我得到解决方案时,我会删除我之前关于同一事项的帖子。

正则表达式应:

MATCH: " 400: - " " 200: - " " 588: - " " 999: - "

但没有匹配: " 1 200: - " " o 100: - " " 1400: - " " y 800: - " " 400" " i 588: - "

为什么这个正则表达式不起作用? (^ [0-9] [0-9] [0-9]: - ?$)

3 个答案:

答案 0 :(得分:4)

试试以下正则表达式:

^\d{3}:-$

答案 1 :(得分:1)

尝试

"^[0-9]{3}:-"

告诉它在字符串的开头三次找到0到9之间的任意数字,紧接着是": - "

如果你不想让它只检查开头那么

bool check;
Regex reg = new Regex("[0-9]{3}:-");
check = reg.IsMatch("400:-"); // true
check = reg.IsMatch("40:-"); // false
check = reg.IsMatch("asdf400:-"); // true

但是这会使它与你不想要匹配的那些匹配。

答案 2 :(得分:1)

您的正则表达式确实有效,只需删除可选的量词?,并将您的开始/结束行锚点放在捕获组之外。它可以简化为以下内容。

^([0-9]{3}:-)$