我有一个这样的文本
test=1;toto=2;GSettings.key=value;GSettings.test=42;x=y;GSettings.aaa=bbb
我需要的是使用Regex提取定界符后的字符串
需要的输出:
key=value
test=42
aaa=bbb
我尝试过的: 正则表达式
GSettings.[^=]+=[^=;]+
但 GSettings 始终包含在匹配模式中
这里是 my test在 Rubular.com 上
注意:
我需要一个 RegEx
解决方案 不欢迎任何其他建议,例如使用 string.Split
或 Linq
最佳答案
您正在寻找Regex Lookbehind这将匹配但不会捕获 GSettings 语法非常简单。只需使用 (?<=MatchButDontCapture)capture+
这应该适用于您的情况
(?<=GSettings\.)[^=]+=[^=;]+
您还可以使用 Capture Groups进行更高级的匹配。例如
GSettings\.([^=]+)=([^=;]+) //The brackets are used for grouping
第 1 组将保存键,而第 2 组将保存值
关于c# - 跳过正则表达式中的单词边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21479641/