我想替换以“ h”结尾的每个单词,但是如果“ h”之前的字符是这些(l|m|t|s)
之一,则无需替换。
这就是我在java中所做的事情:
String t1="samplh sampleh samplah sampmh";
System.out.print(t1.replaceAll("(l|m|t|s)h","#"));
但这给了我(替换了分组的char和“ h”):
samp# sampleh samplah samp#
它应该看起来像这样(只是“ h”必须替换为“#”):
sampl# sampleh samplah sampm#
最佳答案
这个怎么样:
(?<=[lmts])h(?=\s|$)
工作正则表达式示例:
http://regex101.com/r/iR4zV0
Java的:
String t1="samplh sampleh samplah sampmh";
System.out.print(t1.replaceAll("(?<=[lmts])h(?=\s|$)","#"));
输出:
sampl# sampleh samplah sampm#