从另一个字符串中删除字符串忽略空格

t30tvxxf  于 2021-07-12  发布在  Java
关注(0)|答案(3)|浏览(301)

请参阅basicaly我们可以使用as ex:

s = kishan kishai shan

如果我用这个函数

s.replaceAll("is" , "");

输出为: khan khai shan 我想要的输出: khan kha han 帮帮我!

k7fdbhmy

k7fdbhmy1#

我们想要匹配 is 所以我们可以删除它,所以正则表达式最初是 is 然后我们可以使用 replaceAll("is", "") :

↓↓     ↓↓
Input:   kishan kishai shan
Result:  khan khai shan
Desired: khan kha han

然后我们希望允许字母之间有可选的空格,因此我们增强了regex以 replaceAll("i ?s", "") :

↓↓     ↓↓  ↓↓↓
Input:  kishan kishai shan
Result: khan khahan

不幸的是,这移除了空间,所以我们捕获它以便我们可以保留它,使用 replaceAll("i( ?)s", "$1") :

↓↓     ↓↓  ↓⭳↓
Input:  kishan kishai shan
Result: khan kha han

如果要删除的文本较长,我们需要在所有字母之间选择空格,并为所有字母保留替换标记 replaceAll("i( ?)s( ?)h", "$1$2") :

↓↓↓    ↓↓↓ ↓⭳↓↓
Input:  kishan kishai shan
Result: kan ka an
knpiaxh1

knpiaxh12#

我不知道有什么更好的方法来表达你的替代品,除了使用以下替代品:

is|i|s

示例脚本:

String s = "kishan kishai shan";
String output = s.replaceAll("is|i|s", "");
System.out.println(output);  // khan kha han
d8tt03nd

d8tt03nd3#

试试这个:

String s = "kishan kishai shan";
 System.out.println(s.replaceAll("i(\\s*)s" , "$1"));

相关问题