java正则匹配前后两个相同字符的中间串$文本$

Posted by K on December 24, 2019

#正则式

([$€₤])[^\1]+\1

说明: -[$€₤]表示$或€或₤,效果等效于($|€|₤),对于实现略有不同,[abc]表示任取其一,($€₤)相当于if (==$) else if (==€) else if (==₤) -\1表示第一个括号内的内容 -[^\1]+表示至少一个非第一个括号内容字符 -匹配如“其他文本$截取内容$其他文本”,将会匹配出$截取内容$,subString一下可以把“截取内容”取出

#代码示例

Pattern pattern = pattern.compile(([$€₤])[^\1]+\1);
Matcher matcher = pattern.matcher(其他文本$截取内容$其他文本);
if (matcher.find()) {
	String matchText = matcher.group(0);
    String matchTextFinal = matchText.substring(1, matchText.length() - 1);   // 去掉标志符
	// do other thing
}