簡體   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