您可以使用正则表达式来完成此任务。基本上,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