C#Regex.Split(如何构建)

C#Regex.Split(如何构建),c#,regex,split,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 Medi

我试着像这样分割线:

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

问题是以文件扩展名结尾的行。但是在“=”到达之后,就不需要额外的拆分了。

您可以使用基于正则表达式的拆分,只对后跟任何字符的点进行拆分,而不是
=
,然后是
=
或字符串结尾,前面不带
=

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

好的,非常感谢您!但是现在我明白了,我忘了提到完全没有“=”的情况。没问题,只需添加一个字符串结尾替代前瞻:
(?谢谢!:)如果你一年只使用一两次正则表达式,那就不那么容易了。我真的需要深入了解一些教程。
var chunks = Regex.Split(str, @"(?<=^[^=]*)\.(?=[^=]*(?:=|$))");