我尝试使用以下代码替换给定字符串中的单词列表。
String Sample = " he saw a cat running of that pat's mat ";
String regex = "'s | he | of | to | a | and | in | that";
Sample = Sample.replaceAll(regex, " ");
输出
[ saw cat running that pat mat ]
// minus the []
它仍然有最后一个字"那"。无论如何还要修改正则表达式以考虑最后一个单词。
答案 0 :(得分:2)
尝试:
String Sample = " he saw a cat running of that pat's mat remove 's";
String resultString = Sample.replaceAll("\\b( ?'s|he|of|to|a|and|in|that)\\b", "");
System.out.print(resultString);
看到猫跑去拍拍垫
<强> 样本 强>
答案 1 :(得分:1)
问题是您有连续的单词要替换。
例如,考虑子串
[ of that ]
当replaceAll
正在运行时,[ of ]
匹配
[ of that ]
^ ^
将替换为(空格)。要匹配的下一个字符是
t
,而不是
... | that | ...
我认为你可以做的就是添加单词边界而不是空格。
String regex = "'s\\b|\\bhe\\b|\\bof\\b|\\bto\\b|\\ba\\b|\\band\\b|\\bin\\b|\\bthat\\b";
或Tuga's answer中显示的较短版本。
答案 2 :(得分:0)
它不起作用,因为你删除了&#34; &#34;首先是部分,然后在&#34;之前没有空间。单词,因为你删除了它(被替换)
你可以通过两种方式改变:
String regex =&#34;&#39; s |他|的|到| a |和|在|该&#34 ;;
或
String regex =&#34;&#39; s |他|的到| a |和| in | that&#34;;
或者您只需调用Sample = Sample.replaceAll(正则表达式,&#34;&#34;);再次