繁体   English   中英

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

[英]Only match regular expression in c# string

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

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

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

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

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

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

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

^\d{4}$

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

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

希望这有帮助:)

我相信\\b[0-9]{4}\\b应该做的伎俩。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM