2

我想从忽略大小写的非常大的文本中删除任何出现的“很高兴”句子。以下是一些大文本句子:

  1. “她很高兴。我喜欢这样。”

  2. “他快乐的儿子”

  3. “他整天都很开心”

  4. “塔莎很高兴”

  5. “选择以下一项:悲伤-快乐-哭泣”

我的初始代码是:

String largeText = "....";  // The very large text here.
String removeText = "is happy";
largeText = largeText.replaceAll( "(?i)" + removeText , "" ); 

此代码适用于第 1、3、4、5 句。但我不想从第 2 句中删除它,因为它有其他含义。 我怎样才能做到这一点 ?

4

2 回答 2

4

在您的模式周围使用\b来检测单词边界。IE:

String largeText = "....";  // The very large text here.
String removeText = "is happy";
largeText = largeText.replaceAll( "(?i)\\b" + removeText + "\\b" , "" ); 
于 2010-12-23T20:22:15.137 回答
0

您可能想研究原子零宽度断言——与字符串内的位置(例如单词边界)匹配的模式,而不是文本本身。

这个问题以前被问过;有关更多信息,请参阅此链接:

java String.replaceAll 正则表达式问题

于 2010-12-23T20:22:44.217 回答