您可以使用正則表達式來完成此任務。基本上,s
必須是]
或開始行/字符串和=
符號之間的一些文本字符串。
因此,使用
(?:^\p{Zs}*|])([^]=]*)=
見regex demo
正則表達式崩潰:
(?:^\p{Zs}*|])
- 非捕獲組匹配2層的替代品:
^\p{Zs}*
- 啓動字符串/ li NE(取決於所用RegexOptions
),接着0或多個水平空白符號或...
]
- 字面]
符號
([^]=]*)
- 不在]
(捕獲組1)0或多個符號或=
。
=
- 字面=
符號
C# Code:
var strs = new List<string> { " [ f ] s = t", "s = t"};
var pattern = @"(?:^\p{Zs}*|])([^]=]*)=";
foreach (var s in strs)
{
var match = Regex.Match(s, pattern);
if (match.Success)
Console.WriteLine(match.Groups[1].Value);
}
如果你需要讓你通過Match.Value
需要的值,你可以使用
@"(?<=^\p{Zs}*|])[^]=:]*(?=[=:])"
這裏是regex demo
你在這裏試圖解決什麼問題?一個例子不會削減它。 – nhahtdh
如果你的目標是解析ini文件,然後https://stackoverflow.com/questions/217902/reading-writing-an-ini-file – nhahtdh