Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除其他字符之间的字符_Java_Regex - Fatal编程技术网

Java 删除其他字符之间的字符

Java 删除其他字符之间的字符,java,regex,Java,Regex,我有一个包含很多句子的字符串,这个字符串有“ga-te”、“ga-te”等单词。 我需要将所有像“ga-te”这样的词转换成“gate”,并且不要互相接触。我尝试使用regexp,但没有成功。你能帮我吗? 顺便说一句,对不起,我的英语不好 String s = "ga - te" s = s.replaceAll("(?=[a-zA-Z]) *- *(?=[a-zA-Z])", ""); 只需正面查看,检查前后是否有字母,但不匹配。您可以使用 String[] arr = { "ga- te"

我有一个包含很多句子的字符串,这个字符串有“ga-te”、“ga-te”等单词。 我需要将所有像“ga-te”这样的词转换成“gate”,并且不要互相接触。我尝试使用regexp,但没有成功。你能帮我吗? 顺便说一句,对不起,我的英语不好

String s = "ga - te"
s = s.replaceAll("(?=[a-zA-Z]) *- *(?=[a-zA-Z])", "");
只需正面查看,检查前后是否有字母,但不匹配。

您可以使用

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

gate
gate
您可以将想要保留的内容放在周围,并在替换呼叫中提及这些组

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

您尝试的正则表达式/代码是什么?这很简单。一些提示:
\s
将匹配一个空格,
*
是一个量词,它将匹配前面的标记零次或多次。提供一行代码,这将很容易理解..尝试了“[a-z]-[a-z]”但之后我明白不能只删除“-”,因为我使用了replaceAll。它将是
”(?谢谢,所有工作,但我将使用()([a-z])-*([a-z]),“$1$2”)因为我只对“ga-te”感兴趣。