替换不在单词内的引号

时间:2016-11-05 21:14:22

标签: java regex

我有一个包含多个单词的长字符串。

这些词中的一些有例如撇号。别 。有些单词在单词之外有撇号,例如'''movieis great'''或''很多撇号'''''。

我想删除所有不属于该词的撇号。

  
    

例如在字符串中=不要试图''''删除''''字'里面的'。     输出应该是不要试图删除内部的字段。

  
fuction

1 个答案:

答案 0 :(得分:1)

请注意,.replace()仅替换文字字符串,并且不允许正则表达式作为搜索参数。

你可以使用一个正则表达式来匹配没有用单词边界括起来的撇号:

String s = "don't try to ''''remove apostr inside'''' word' 'żoł'";
s = s.replaceAll("(?U)\\B'\\b|\\b'\\B|\\B'\\B", "");
System.out.println(s);

请参阅online Java demo

此处,\b是字边界,\B是字边界以外的位置,(?U)使\b\B知道Unicode。