我试图分割那样的行:
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
问题是以文件扩展名结尾的行。但在" ="之后到了没有必要再分开。
答案 0 :(得分:3)
您可以使用基于正则表达式的拆分,仅拆分点后跟除=
之外的任何字符,然后是=
或字符串结尾,而不是=
之前的字符:
(?<=^[^=]*)\.(?=[^=]*(?:=|$))
请参阅regex demo。
(?<=^[^=]*)
是一个积极的外观,需要在字符串开头(^
)之后出现一个点,后面跟着=
以外的0 +字符和{{1}在{0}以外的0 +字符之后,正向前瞻还需要(?=[^=]*(?:=|$)
或字符串结尾(请参阅=
非捕获组)。
在C#中:
(?:=|$)