我有这样的文字
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.Split
或Linq
之类的其他建议 最佳答案
您正在寻找将匹配但不会捕获GSettings的Regex Lookbehind语法非常简单。只需使用(?<=MatchButDontCapture)capture+
这应该在您的情况下有效
(?<=GSettings\.)[^=]+=[^=;]+
您也可以使用Capture Groups进行更高级的匹配。例如
GSettings\.([^=]+)=([^=;]+) //The brackets are used for grouping
第1组将按住键,而第2组将保留值