Regex c#:在两个分隔符之间分割
本文关键字:两个 分隔符 之间 分割 Regex | 更新日期: 2023-09-27 18:01:18
假设下面有一个示例字符串:
"parentstring1[childstring1.childstring2.childstring3].parentstring2[childstring4.childstring5]"
我如何分割上面的字符串来产生一个数组,下面的值来自'.'
字符和'['和']'作为分隔符
array[0] = "parentstring1[childstring1.childstring2.childstring3]"
array[1] = "parentstring2[childstring4.childstring5]"
您可以使用以下正则表达式进行分割:
'.(?![^'[]*'])
RegEx演示
只有当它后面没有0个或多个non-[
字符和一个]
时,才会在DOTs上进行分割,从而确保在[...]
以外的DOTs上进行分割。
string text = "parentstring1[childstring1.childstring2.childstring3].parentstring2[childstring4.childstring5]";
string[] arr = Regex.Split(text, "(?<='']).");
foreach (var item in arr)
{
Console.WriteLine(item);
}
你可以这样使用正则表达式:
[^'['.]+'[[^']]*']
意思是:除了。然后是[,后面跟着[]符号里面的东西。
MatchCollection matches = Regex.Matches(source, "[^'['.]+'[[^']]*']")
演示