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