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 c#:在两个分隔符之间分割

您可以使用以下正则表达式进行分割:

'.(?![^'[]*'])

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, "[^'['.]+'[[^']]*']")
演示