我有一个要分隔的字符串,但问题是,正如您在我的字符串中的 strTitle 参数下面看到的那样,在文本“sim,test”中包含一个逗号
我如何使用正则表达式来捕获结果并将逗号替换为 ‚
?
string strTest = "intWhole = 1, strTitle = sim, test, intClass = 3,";
我有一个要分隔的字符串,但问题是,正如您在我的字符串中的 strTitle 参数下面看到的那样,在文本“sim,test”中包含一个逗号
我如何使用正则表达式来捕获结果并将逗号替换为 ‚
?
string strTest = "intWhole = 1, strTitle = sim, test, intClass = 3,";
鉴于您的语言/平台支持前瞻,您可以尝试以下操作:
搜索:,(?!\s*$|\s*\S+\s*=)
替换为:‚
将匹配任何不跟zero or more white spaces and then end of line
or的逗号zero or more white spaces, one or more non-whitespace characters, one or more white spaces and a = character
所以基本上任何不在声明末尾的逗号(因为这些逗号后面是行尾或新变量)
试试这个正则表达式。每场比赛都应该有两个捕获组 - 名称和值。基本上,它搜索在逗号开头或之后的字符串,然后捕获组为您获取名称。然后等号匹配。然后一个捕获组为您提供必须后跟字符串结尾的值或另一个值(通过正向前瞻)。
这里的关键是不具有相等的登录值。
(?:^|(?:, )([a-zA-Z]+)(?: = )(.+)(?=$|(?:, [a-zA-Z]+ = ))
有了结果,您可以在值中轻松替换逗号(取决于您使用的语言)。顺便说一句,上面是java正则表达式。