请参阅basicaly我们可以使用as ex:
s = kishan kishai shan
如果我用这个函数
s.replaceAll("is" , "");
输出为: khan khai shan 我想要的输出: khan kha han 帮帮我!
khan khai shan
khan kha han
k7fdbhmy1#
我们想要匹配 is 所以我们可以删除它,所以正则表达式最初是 is 然后我们可以使用 replaceAll("is", "") :
is
replaceAll("is", "")
↓↓ ↓↓ Input: kishan kishai shan Result: khan khai shan Desired: khan kha han
然后我们希望允许字母之间有可选的空格,因此我们增强了regex以 replaceAll("i ?s", "") :
replaceAll("i ?s", "")
↓↓ ↓↓ ↓↓↓ Input: kishan kishai shan Result: khan khahan
不幸的是,这移除了空间,所以我们捕获它以便我们可以保留它,使用 replaceAll("i( ?)s", "$1") :
replaceAll("i( ?)s", "$1")
↓↓ ↓↓ ↓⭳↓ Input: kishan kishai shan Result: khan kha han
如果要删除的文本较长,我们需要在所有字母之间选择空格,并为所有字母保留替换标记 replaceAll("i( ?)s( ?)h", "$1$2") :
replaceAll("i( ?)s( ?)h", "$1$2")
↓↓↓ ↓↓↓ ↓⭳↓↓ Input: kishan kishai shan Result: kan ka an
knpiaxh12#
我不知道有什么更好的方法来表达你的替代品,除了使用以下替代品:
is|i|s
示例脚本:
String s = "kishan kishai shan"; String output = s.replaceAll("is|i|s", ""); System.out.println(output); // khan kha han
d8tt03nd3#
试试这个:
String s = "kishan kishai shan"; System.out.println(s.replaceAll("i(\\s*)s" , "$1"));
3条答案
按热度按时间k7fdbhmy1#
我们想要匹配
is
所以我们可以删除它,所以正则表达式最初是is
然后我们可以使用replaceAll("is", "")
:然后我们希望允许字母之间有可选的空格,因此我们增强了regex以
replaceAll("i ?s", "")
:不幸的是,这移除了空间,所以我们捕获它以便我们可以保留它,使用
replaceAll("i( ?)s", "$1")
:如果要删除的文本较长,我们需要在所有字母之间选择空格,并为所有字母保留替换标记
replaceAll("i( ?)s( ?)h", "$1$2")
:knpiaxh12#
我不知道有什么更好的方法来表达你的替代品,除了使用以下替代品:
示例脚本:
d8tt03nd3#
试试这个: