Skip to main content
 首页 » 编程设计

c#之跳过正则表达式中的单词边界

2024年02月01日28tintown

我有一个这样的文本

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 组将保存值