仅匹配c#字符串中的正则表达式

时间:2010-01-08 22:34:05

标签: c# regex

我对正则表达式不太好,所以这可能是一个显而易见的问题。

如果找到一定数量的字符,我希望我的表达式匹配,如果存在任何额外的字符,则表示失败。例如,如果我有一个应该有4位数的字符串,则以下内容应为真。

1234 - 匹配
ab1234cd - 不匹配
012345 - 不符合

到目前为止我所拥有的是\ d {4},但我的理解是,这只会匹配任何地方有4位数的字符串。我想只在一个字符串包含4位数字时才匹配。

任何帮助将不胜感激。感谢。

4 个答案:

答案 0 :(得分:6)

使用^和$标记字符串的开头/结尾。

答案 1 :(得分:3)

根据您的实施方式(单线模式或多线模式),您可以使用类似的内容:

^\d{4}$

仅匹配(字符串的开头)四位数字(字符串的结尾)。

答案 2 :(得分:1)

\ b [0-9] {4} \ b或^ \ d {4} $应该都有效。也许我可以稍微扩展一下GrayWizardx所说的内容(以防万一你在C#中不使用正则表达式),上面提供的正则表达式会查找只有4位数的行。默认情况下(如果内存对我很好),正则表达式引擎只查看第一行,所以如果你有一个超过1行的字符串,你想检查整个字符串(例如,字符串已经从文件加载),您将添加选项RegexOptions.MultiLine。通过这种方式,引擎也会看到其他线路。

希望这有用:)

答案 3 :(得分:0)

我相信\b[0-9]{4}\b应该做到这一点。