所以我需要不区分大小写地匹配一个字符串,该字符串具有文字前缀和后缀。
例如说我正在寻找以下内容
前缀$Close(#$ScreenName: "
将始终相同,而后缀")
将始终相同。但是,引号内的内容将不存在,我想区分大小写地匹配它。
因此,如果我告诉它查找“系统A确认弹出窗口”,它将与之匹配
$Close(#$ScreenName: "System A Acknowledgement Popup")
或
$Close(#$ScreenName: "system a acknowledgement popup")
这是我的代码。我正在尝试获取比赛计数,然后替换比赛。
static string FixScreenCallsInFile(string FileContents, List<string> screenNamesToFindAndFix)
{
foreach (var screenName in screenNamesToFindAndFix)
{
var ScreenNameHelper = (Old: $"$Close(#$ScreenName: \"{screenName}\")", New: $"$Close(\"{screenName}\")", OldSearchPattern: Regex.Escape($"$Close(#$ScreenName: \"{screenName}\")"));
var CountMatch = Regex.Matches(FileContents, ScreenNameHelper.OldSearchPattern).Count;
if (CountMatch > 0)
{
Console.WriteLine($"\t\t{ScreenNameHelper.Old} count is {CountMatch} -> {ScreenNameHelper.New}");
FileContents = Regex.Replace(FileContents, ScreenNameHelper.OldSearchPattern, ScreenNameHelper.New);
}
}
return FileContents;
}
我的挂断是不区分大小写的屏幕名称部分。
答案 0 :(得分:1)
如果要在字符串的任何位置更改“游戏规则”,则可以使用内联选项(?imnsx-imnsx)
。 -
关闭选项。
说,您需要匹配字符串ABCabc
。然后模式ABC(?i)ABC
将匹配此字符串。换句话说,首先,它将严格匹配ABC
,但随后将对ABC
的所有情况进行排列:abc
,aBc
,aBC
等。< / p>