在尝试理解在一个字符串中的特定模式之后提取字符串的方法后,我失去了理智。
模式是#|#,例如字符串是: Scirocco_#01_#|#Cp1freezer 我想在模式结束后找到模式并提取字符串: Cp1freezer
我尝试使用正则表达式^(。)#|#(。)$,但我找不到出路。
String input = "Scirocco_#01#|#Cp1";
Matcher m = Pattern.compile("^(.*)#|#(.*)$").matcher(input);
if(m.find()) {
String first = m.group(1); // Scirocco_#01
String second = m.group(2); // Cp1
}
答案 0 :(得分:1)
您需要逃离管道' |'
像这样:
Matcher m = Pattern.compile("^(.*)#\\|#(.*)$").matcher(input);
答案 1 :(得分:1)
首先,您需要转义|
以便按字面意思匹配它。其次,如果您只想提取#|#
之后的内容,则不需要捕获#|#
之前的内容,因此可以删除表达式的开头。第一个捕获组将包含所需的子字符串: