2013-04-15 32 views
0

我有一个字符串,我想分开,但问题是,正如你可以看到下面我的字符串中的strTitle参数在文本中包含一个逗号'sim,test'正则表达式在等号后截取并在逗号前结束

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

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

是否要将逗号总是替换为一个字符串?=? – amadain

+0

预期结果是什么?语言是什么? – nhahtdh

+1

创建字符串时是否有机会进行替换? –

回答

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匹配任何逗号不是其次

所以基本上y逗号不在声明结束时(因为这些后面跟着行尾或新变量)

0

试试这个正则表达式。每场比赛应该有两个捕获组 - 名称和价值。基本上它搜索的字符串是开头后逗号,然后捕获组得到你的名称。然后匹配等号。然后一个捕获组给你的值必须跟着字符串的另一个值(通过积极的前瞻)结束。

这里的关键是要不是具有等号的值。

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

结果是,您可以轻松地在值内取代逗号(取决于您使用的语言)。顺便说一句,这是Java正则表达式。