繁体   English   中英

用于替换逗号的复杂正则表达式模式

[英]Complex RegEx patter for replacing commas

我对 REGEX 模式有一个问题,它必须用一个逗号替换两个逗号,后面有一个空格,但是如果只有一个逗号并且后面没有空格,我希望它在那里添加那个空格。

目前,我正在使用这种模式 - /([,]+)/g ,但如果我有一个逗号和空格,它会增加一个空格。

案例:

  • 文本,,文本->文本, 文本
  • 文本,文本->文本,文本
  • 文本,文本->文本,文本
  • 文本,,文本,,文本->文本, 文本, 文本

(我正在使用 Java)

你有什么建议,这个 REGEX 模式应该是什么样子? 我还是有点困惑。

谢谢。

您想要的是确保每个逗号链后面都有一个空格,而不是在每种情况下都创建一个。 您可以使用前瞻来执行此操作,但我更喜欢包容性检查,如果字符链已经包含空格,如果是这样,也替换它们。

str.replaceAll("\\,+ *", ", ");

上面的答案将占用逗号后的所有(真实)空格并替换它们,这样,您插入的单个空格是唯一的。 这不适用于换行符。 如果您有换行符并想明确处理它们,那么您需要以不同的方式进行。 换句话说,如果逗号后面是换行符,则(新)逗号和换行符之间将有一个空格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM