首先,我不是正则表达式的专家。所以请看看这个正则表达式:
([km]u|nya|[kl]ah|pun)$
我想在以下字符串中删除“nya”和“lah”:
diserahkannyalah
而不是显示“diserahkan”,其结果是“diserahkannya”。因此,尝试更换操作时并非所有标准都满足。 为什么会这样?我使用Java并使用Matcher中的replaceAll方法
答案 0 :(得分:1)
您只需要添加量词:
([km]u|nya|[kl]ah|pun)+$
^
请参阅regex demo
此+
告诉正则表达式引擎重复匹配+
量化1次或更多次的模式。这里,量化器出现在关闭捕获组的)
之后,因此,整个捕获组模式被量化。
请注意,如果您只是删除所有这些子字符串,则可以使用非捕获组:(?:[km]u|nya|[kl]ah|pun)+$
。
有关正则表达式量词的更多详细信息,请参阅Quantifier Cheat Sheet。