繁体   English   中英

如何检查正则表达式是否与 c# 中的整个字符串匹配?

[英]How to check if a Regex expression matches an entire string in c#?

我是正则表达式的新手,如果这是一个真正的菜鸟问题,我很抱歉。

我有一个正则表达式......我想要做的是检查一个字符串是否完全匹配正则表达式,而正则表达式不匹配字符串的任何子集。

例如...

如果我的正则表达式正在寻找 \\s A \\s* 的匹配项,如果它与之比较的字符串是“ A ”,则它应该返回一个匹配项,但如果它与字符串“ AB”进行比较,则不应返回匹配项.

任何帮助将不胜感激? 我用 C# 编码。

您通常会分别使用开始结束锚点^$

^\s*A*\s*$

请记住,如果您的正则表达式引擎支持多行,这也可能会捕获跨越多行的字符串,只要这些行之一与正则表达式匹配(因为^然后锚定在任何换行符或字符串开始之后,而$在任何换行符之前或字符串结尾)。 如果您只针对一行运行正则表达式,那不会有问题。

如果您想确保多行输入只是由您的模式组成的单行,您可以使用\\A\\Z如果支持) - 这些表示字符串的开始和结束,而不管换行符如何。

如果您不能或不想更改正则表达式,则还可以使用:

var match = regex.Match(pattern);
if (match.Success && match.Length == pattern.Length)
{
    // TODO: Entire string was matched, and not a sub string
}

暂无
暂无

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

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