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

标签 c# regex

我有一个这样的文本

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.SplitLinq

最佳答案

您正在寻找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/

相关文章:

c# - 如何在用 C# 编写的控制台应用程序中捕获来自工作线程的错误

C# 将数组元素分配给另一个数组

javascript - 替换或删除查询字符串 javascript

c# - 在数据库中存储 C# GetHashCode() 是不可靠的

c# - 如何覆盖 [] 数组中的 ToString()?

c# - 用C#弹吉他

java - 使用正则表达式从地址中删除特殊字符

javascript - 为javascript准备一个正则表达式

c - 用于在源代码中搜索的正则表达式(while 循环)

JavaScript 正则表达式测试字符串是否包含特定单词(带变量)