请帮助我在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
答案 0 :(得分:3)
您可以使用&#34;,&#34;搜索并替换为&#34; &#34; (空格)如下:
one.replace(", ", " ");
如果你认为,你有&#34; myString,,,,&#34;或者介于两者之间的多个空格,那么你可以使用像
这样的正则表达式替换allone.replaceAll(",\\s+", " ");
答案 1 :(得分:0)
答案 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