正则表达式在等号后捕获所有符号并在逗号之前结束

时间:2013-04-15 09:54:43

标签: regex

我有一个我要分开的字符串,但问题是你可以在下面看到我的字符串中的strTitle param在文本'sim,test'中包含一个逗号

如何使用正则表达式捕获结果并将逗号替换为‚

string strTest = "intWhole = 1, strTitle = sim, test, intClass = 3,";

2 个答案:

答案 0 :(得分:0)

鉴于您的语言/平台支持前瞻,您可以尝试:

搜索:,(?!\s*$|\s*\S+\s*=)
替换为:‚

匹配任何逗号后跟zero or more white spaces and then end of linezero or more white spaces, one or more non-whitespace characters, one or more white spaces and a = character

所以基本上任何逗号都不在声明的末尾(因为它们后面跟着行尾或新变量)

答案 1 :(得分:0)

试试这个正则表达式。每场比赛都应该有两个捕获组 - 名称和值。基本上,它会搜索开头后逗号的字符串,然后捕获组会为您提供名称。然后匹配等号。然后,捕获组会为您提供,后面必须跟字符串结尾其他值(通过正向前瞻)。

此处的关键是 的值相等。

(?:^|(?:, )([a-zA-Z]+)(?: = )(.+)(?=$|(?:, [a-zA-Z]+ = ))

获得结果后,您可以在值中轻松替换逗号(取决于您使用的语言)。顺便说一句,上面是java正则表达式。