[英]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.