我想从一个忽略区分大小写的非常大的文本中删除任何“快乐”句子。以下是一些大文本句子:
“她很高兴。我喜欢这样。”
“他快乐的儿子”
“他一整天都很开心”
“塔莎很开心”
“选择以下其中一项:很难过 - 很高兴 - 在哭泣”
我的初始代码是:
String largeText = "...."; // The very large text here.
String removeText = "is happy";
largeText = largeText.replaceAll( "(?i)" + removeText , "" );
此代码可以正常使用第1,3,4,5号句子。但是我不想将它从第2句删除,因为它有另一种含义。 我该怎么做?
答案 0 :(得分:4)
在模式周围使用\b
来检测字边界。即:
String largeText = "...."; // The very large text here.
String removeText = "is happy";
largeText = largeText.replaceAll( "(?i)\\b" + removeText + "\\b" , "" );
答案 1 :(得分:0)
您可能希望查看原子零宽度断言 - 与字符串中的位置匹配的模式(例如单词边界),而不是文本本身
之前曾问过这个问题;有关详细信息,请参阅此链接: