JAVA替换所有以'开头的字符串除外

时间:2019-02-12 15:22:18

标签: java methods replaceall

我有一个混乱的字符串,如:

String text= "2018-11-22 08:30:21,311: 'h' 2018-11-22 08:30:21,312: 'e' 2018-11-22 08:30:21,313: 'll' 2018-11-22 08:30:21,314: 'o' ";

,我想用 empty 替换所有其他字符串,但以'

开头的字符串除外

类似这样的东西:

String cleartext = ""; 
if (text.contains("'"))
        cleartext = text.replaceAll("[text.startingWith("'a-z" + "'0-9")]", "");        
         out.println(cleartext);

所以输出为'h' 'e' 'll' 'o'

注意:我只是发现可以用replace方法来实现它,但是如果有其他方法可以实现,我不介意。 非常感谢!

2 个答案:

答案 0 :(得分:3)

我可以做一件事。希望您不介意没有代码的答案。

  1. 通过字符'分割字符串,并将其放入字符串数组。例如,字符串“ h'e'll'o'”。变成h,e,ll,o,。

  2. 忽略所有奇数索引。偶数索引中的字符串将是'字符内的字符串。上面的例子是“ e,o”

  3. 通过步骤2输出字符串数组甚至索引或创建新数组。

答案 1 :(得分:0)

我认为您正在寻找类似的东西。

Pattern pattern = Pattern.compile("'[a-z0-9]+'");

private String function(final String input) {
    final Matcher matcher = pattern.matcher(input);
    final StringBuilder sb = new StringBuilder();
    while (matcher.find()) {
        if (sb.length() > 0) {
            sb.append(" ");
        }
        sb.append(matcher.group());
    }
    return sb.toString();
}

但是,我不确定您要应用以获得预期结果的规则。例如:"'''" => "'"

相关问题