我有这样的文字

test=1;toto=2;GSettings.key=value;GSettings.test=42;x=y;GSettings.aaa=bbb


我需要使用正则表达式在定界符后提取字符串

需要的输出:

key=value

test=42

aaa=bbb


我尝试过的
 正则表达式

GSettings.[^=]+=[^=;]+,但匹配模式中始终包含GSettings

这是Rubular.com上的my test

注意:
我需要一个RegEx解决方案,不欢迎使用string.SplitLinq之类的其他建议

最佳答案

您正在寻找将匹配但不会捕获GSettings的Regex Lookbehind语法非常简单。只需使用(?<=MatchButDontCapture)capture+

这应该在您的情况下有效

(?<=GSettings\.)[^=]+=[^=;]+




您也可以使用Capture Groups进行更高级的匹配。例如

GSettings\.([^=]+)=([^=;]+) //The brackets are used for grouping

第1组将按住键,而第2组将保留值

10-08 10:52