Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于替换逗号的复杂正则表达式模式_Java_Regex - Fatal编程技术网

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

Java 用于替换逗号的复杂正则表达式模式,java,regex,Java,Regex,我对正则表达式模式有一个问题,它必须用一个逗号替换两个逗号,后面有一个空格,但是如果只有一个逗号,后面没有空格,我希望它在那里添加那个空格 目前,我正在使用这种模式-/([,]+)/g,但如果我有一个逗号和空格behing,它会增加一个空格behing 案例: 文本,文本->文本,文本 文本,文本->文本,文本 文本,文本->文本,文本 文本,文本,文本->文本,文本,文本 (我正在使用Java) 你有什么建议,这个正则表达式模式应该是什么样子的?我还是有点困惑 谢谢。您想要的是确保每个逗号

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

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

案例:

  • 文本,文本->文本,文本
  • 文本,文本->文本,文本
  • 文本,文本->文本,文本
  • 文本,文本,文本->文本,文本,文本
(我正在使用Java)

你有什么建议,这个正则表达式模式应该是什么样子的?我还是有点困惑


谢谢。

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

str.replaceAll(“\\,+*”,“,”);
上面的答案将使用逗号后的所有(实)空格,并替换它们,这样,插入的单个空格就是唯一的空格。这不适用于换行符。如果您有换行符,并且希望显式地处理它们,那么您需要以不同的方式进行处理。换句话说,如果逗号后跟换行符,则(新)逗号和换行符之间将有一个空格