我正在嘗試用 C# 撰寫一個正則運算式來捕獲所有這些潛在的字串:
Test Pre-Requisite
Test PreRequisite
Test Pre Requisite
當然,用戶也可以輸入任何可能的情況。因此,能夠忽略大小寫會很棒。我能做的最好的是:
Regex TestPreReqRegex = new Regex("Test Pre[- rR]");
If (TestPreReqRegex.IsMatch(StringToCompare)){
// Do Stuff
}
但這不會捕獲“Test PreRequisite”,也不會捕獲小寫字母。我怎樣才能解決這個問題?任何幫助深表感謝。
uj5u.com熱心網友回復:
如果您嘗試匹配整個字串,請使用:
Regex TestPreReqRegex = new Regex("^Test Pre[- ]?Requisite$", RegexOptions.IgnoreCase);
如果您正在尋找部分匹配,則將模式更改為:
\bTest Pre[- ]?Requisite
或者:
\bTest Pre[- ]?R
圖案細節:
^- 字串的開頭。\b- 單詞邊界。[- ]?- 匹配零到一次之間的連字符或空格字符。$- 字串結束。
C# 演示:
var inputs = new[]
{ "Test Pre-Requisite", "Test PreRequisite", "Test Pre Requisite" };
Regex TestPreReqRegex = new Regex("^Test Pre[- ]?Requisite$",
RegexOptions.IgnoreCase);
foreach (string s in inputs)
{
Console.WriteLine("'{0}' is {1}'.", s,
TestPreReqRegex.IsMatch(s) ? "a match" : "not a match");
}
輸出:
'Test Pre-Requisite' is a match'.
'Test PreRequisite' is a match'.
'Test Pre Requisite' is a match'.
在線嘗試。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/418920.html
標籤:
