如何在java中的单词模式后删除逗号

时间:2014-11-16 10:10:59

标签: java regex

请帮助我在java中的单词模式后获取特定的regex删除逗号。 假设,我希望在模式为<Word$TAG>, <Word$TAG>, <Word$TAG>, <Word$TAG>, <Word$TAG>的每个模式之后删除逗号,现在我希望我的输出为<Word$TAG> <Word$TAG> <Word$TAG> <Word$TAG>。如果我使用.replaceAll(),它将替换所有逗号,但在我的<Word$TAG> Word中可能有逗号(,)。

例如, Input.txt 如下

mms§NNP_ACRON, site§N_NN, pe§PSP, ,,,,,§RD_PUNC, link§N_NN, ....§RD_PUNC, CID§NNP_ACRON, team§N_NN, :)§E

Output.txt

mms§NNP_ACRON site§N_NN pe§PSP ,,,,,§RD_PUNC link§N_NN ....§RD_PUNC CID§NNP_ACRON team§N_NN :)§E

4 个答案:

答案 0 :(得分:3)

您可以使用&#34;,&#34;搜索并替换为&#34; &#34; (空格)如下:

one.replace(", ", " ");

如果你认为,你有&#34; myString,,,,&#34;或者介于两者之间的多个空格,那么你可以使用像

这样的正则表达式替换all
one.replaceAll(",\\s+", " ");

答案 1 :(得分:0)

(?<=[^,\s]),

试试这个。empty string。见。演示。

http://regex101.com/r/lZ5mN8/5

答案 2 :(得分:0)

匹配您想要的数据,而不是

你可能想要([^ ]+),并保留括号内的数据,用空格分隔。

您甚至可能希望将其缩小到([^ ]+§[^ ]+),。通常,更严格更好。

答案 3 :(得分:0)

您可以使用正向前瞻断言来匹配所有逗号,后面跟着行锚的空格或末尾。

String s = "mms§NNP_ACRON, site§N_NN, pe§PSP, ,,,,,§RD_PUNC, link§N_NN, ....§RD_PUNC, CID§NNP_ACRON, team§N_NN, :)§E";
System.out.println(s.replaceAll(",(?=\\s|$)",""));

<强>输出:

mms§NNP_ACRON site§N_NN pe§PSP ,,,,,§RD_PUNC link§N_NN ....§RD_PUNC CID§NNP_ACRON team§N_NN :)§E