0

我有一个要分隔的字符串,但问题是,正如您在我的字符串中的 strTitle 参数下面看到的那样,在文本“sim,test”中包含一个逗号

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

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

2 回答 2

0

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

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

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

所以基本上任何不在声明末尾的逗号(因为这些逗号后面是行尾或新变量)

于 2013-04-15T10:10:01.867 回答
0

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

这里的关键是具有相等的登录值。

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

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

于 2013-04-15T10:18:05.637 回答