删除其他字符

时间:2014-10-28 12:56:42

标签: java regex

我有一个包含很多句子的字符串,这个字符串有“ga-te”,“ga - te”等字样。 我需要将所有单词如“ga-te”转换为“gate”并且不要互相接触。我试图使用正则表达式,但它没有成功。你能帮帮我吗? 附:对不起,我的英语不好。

3 个答案:

答案 0 :(得分:1)

您可以使用String.replaceAll(String,string)

String[] arr = { "ga- te", "ga - te" };
for (String str : arr) {
    String word = str.replaceAll("\\s*-\\s*", "");
    System.out.println(word);
}

输出

gate
gate

答案 1 :(得分:1)

您可以将capturing groups放在要保留的内容周围,并在替换调用中引用这些群组。

String s = "ga- te, ga - te, foo  - bar";
s = s.replaceAll("([a-z]) *- *([a-z])", "$1$2");
System.out.println(s); //=> "gate, gate, foobar"

答案 2 :(得分:0)

String s = "ga - te"
s = s.replaceAll("(?=[a-zA-Z]) *- *(?=[a-zA-Z])", "");

看看正面的前瞻,检查前后有一个字母没有匹配。