c#正则表达式.分裂(如何构建)
本文关键字:构建 何构建 正则表达式 分裂 | 更新日期: 2023-09-27 18:11:56
我正在尝试像这样分割行:
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
问题在于以文件扩展名结尾的行。但是,在"="到达之后,就不需要额外的分割了。
您可以使用基于regex的分割,仅分割与=
以外的任何字符后面的点,然后是=
或字符串结束,而不是前面有=
:
(?<=^[^=]*)'.(?=[^=]*(?:=|$))
参见regex演示。
(?<=^[^=]*)
是一个正向后看,要求点出现在字符串的开始(^
)之后,后面跟着0+字符(=
除外),(?=[^=]*(?:=|$)
正向后看还要求=
或字符串的结束(见(?:=|$)
非捕获组)在0+字符(=
除外)之后。
var chunks = Regex.Split(str, @"(?<=^[^=]*)'.(?=[^=]*(?:=|$))");