C#Regex.Split(如何构建)

时间:2016-10-06 11:46:01

标签: c# regex split

我试图分割那样的行:

root.MediaClip.MaxGroups=10
root.MediaClip.M0.Name=Burglar_Alarm_Short
root.MediaClip.M0.Location=/etc/audioclips/Burglar_Alarm_Short_8bit_32kHz_mono_PCM-16bit-little.wav

但我无法弄清楚如何在" ="之后停止分裂。

这里的分割结果应该是:

root
MediaClip
MaxGroups=10

root
MediaClip
M0
Name=Burglar_Alarm_Short

root
MediaClip
M0
Location=/etc/audioclips/Burglar_Alarm_Short_8bit_32kHz_mono_PCM-16bit-little.wav

问题是以文件扩展名结尾的行。但在" ="之后到了没有必要再分开。

1 个答案:

答案 0 :(得分:3)

您可以使用基于正则表达式的拆分,仅拆分点后跟除=之外的任何字符,然后是=或字符串结尾,而不是=之前的字符:

(?<=^[^=]*)\.(?=[^=]*(?:=|$))

请参阅regex demo

(?<=^[^=]*)是一个积极的外观,需要在字符串开头(^)之后出现一个点,后面跟着=以外的0 +字符和{{1}在{0}以外的0 +字符之后,正向前瞻还需要(?=[^=]*(?:=|$)或字符串结尾(请参阅=非捕获组)。

在C#中:

(?:=|$)