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

如何检查正则表达式是否与c#中的整个字符串匹配?,c#,regex,C#,Regex,我不熟悉正则表达式,如果这是一个真正的noob问题,我很抱歉 我有一个正则表达式。。。我要做的是检查一个字符串是否完全匹配正则表达式,而正则表达式不匹配字符串的任何子集 例如 如果我的正则表达式正在查找\sA\s*的匹配项,则如果要与之进行比较的字符串为“a”,则应返回匹配项,但如果与字符串“a B”进行比较,则不应返回匹配项 如果有任何帮助,我们将不胜感激?我用C#编码。您通常会分别使用起始-结束锚定^和$: ^\s*A*\s*$ 请记住,如果您的正则表达式引擎支持多行,这也可能捕获跨多行的

我不熟悉正则表达式,如果这是一个真正的noob问题,我很抱歉

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

例如

如果我的正则表达式正在查找\sA\s*的匹配项,则如果要与之进行比较的字符串为“a”,则应返回匹配项,但如果与字符串“a B”进行比较,则不应返回匹配项


如果有任何帮助,我们将不胜感激?我用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
}

您最多可以尝试在线正则表达式测试仪,简单的C#正则表达式模式应该可以正确测试。实际上,必须使用
\A
(开始)和
\z
(结束)来确保整个字符串匹配。