Java 用于替换逗号的复杂正则表达式模式
我对正则表达式模式有一个问题,它必须用一个逗号替换两个逗号,后面有一个空格,但是如果只有一个逗号,后面没有空格,我希望它在那里添加那个空格 目前,我正在使用这种模式-Java 用于替换逗号的复杂正则表达式模式,java,regex,Java,Regex,我对正则表达式模式有一个问题,它必须用一个逗号替换两个逗号,后面有一个空格,但是如果只有一个逗号,后面没有空格,我希望它在那里添加那个空格 目前,我正在使用这种模式-/([,]+)/g,但如果我有一个逗号和空格behing,它会增加一个空格behing 案例: 文本,文本->文本,文本 文本,文本->文本,文本 文本,文本->文本,文本 文本,文本,文本->文本,文本,文本 (我正在使用Java) 你有什么建议,这个正则表达式模式应该是什么样子的?我还是有点困惑 谢谢。您想要的是确保每个逗号
/([,]+)/g
,但如果我有一个逗号和空格behing,它会增加一个空格behing
案例:
- 文本,文本->文本,文本
- 文本,文本->文本,文本
- 文本,文本->文本,文本
- 文本,文本,文本->文本,文本,文本
谢谢。您想要的是确保每个逗号链后面都有一个空格,而不是在每种情况下都创建一个。您可以使用lookahead执行此操作,但如果字符链已经包含空格,我更喜欢inclusive检查,如果已经包含空格,也可以替换它们
str.replaceAll(“\\,+*”,“,”);
上面的答案将使用逗号后的所有(实)空格,并替换它们,这样,插入的单个空格就是唯一的空格。这不适用于换行符。如果您有换行符,并且希望显式地处理它们,那么您需要以不同的方式进行处理。换句话说,如果逗号后跟换行符,则(新)逗号和换行符之间将有一个空格