匹配逗号或空间上的正则表达式,但不匹配两者



我需要有一个正则表达式,用逗号和空间代替逗号和空间,但是如果已经是逗号和空间,则单独将其放在单独的情况下。

示例:

44,55 90应该变成44、55、90

但是,44、55、90再次进入时,应保持相同。

我最初尝试了/[s,]/g,但它当然可以用逗号和空间替换任何逗号或空间,因此44、55、90变成44、55,,90

答案很简单/ ,?|,/g
或者如果要在逗号/ *,?| /g之前删除任何数量的空白
或者,如果您想疯狂使用此 /s*,s*|s+/g,这将替换任何额外的间距,然后再做所有的stuf。

您可以使用否定的字符类替换其他所有内容的东西,然后用所需的任何东西替换所有东西:

'999 123,098b7b7b7b7b,,,123^&*()43'.replace(/[^d]+/g,', ');
//"999, 123, 098, 7, 7, 7, 7, 123, 43"

这将适用于测试字符串,假设您想用数字,逗号和空格修复字符串,而不是字符的其他组合。

搜索以下内容:

d(,)d|d([ ]{1,},[ ]{0,})d|d([ ]{1,})d

用逗号 ,替换捕获组1,<代码> 。

应该使用量化器检查多个空格的任何真实或潜在的空间。

带6个匹配的测试字符串:

CC_8

最新更新