以下是代码段:
String reFundId = "(\\s{0,})<fund_id>([a-zA-Z0-9]{1,8}\\s)</fund_id>(\\s\\S0,})";
Pattern patFundId = Pattern.compile(reFundId, Pattern.CASE_INSENSITIVE);
String text = "<fund_id>AB11 </fund_id>";
String fundVar = parseFundId(text,patFundId);
public static String parseFundId(String text,Pattern patFundId)
{
String fund_id = null;
Matcher mat = patFundId.matcher("" + text);
if (mat.find())
{
String s = mat.group(2);
fund_id = (s != null ? s.trim() : null);
}
return fund_id;
}
正则表达式模式不接受<fund_id>AB11 </fund_id>
。正则表达式模式需要进行哪些更改?
答案 0 :(得分:1)
这样做,它也适用于多个空格:
String reFundId = "(\\s*)<fund_id>([a-zA-Z0-9]{1,8}\\s*)</fund_id>(\\s*)";
答案 1 :(得分:0)
你在</fund_id>
中没有转义正斜杠。只需将其替换为<\\/fund_id>
即可。你最后也没有方括号。将\\s\\S0,}
替换为[\\s\\S]*
。
答案 2 :(得分:0)
你的正则表达式中有拼写错误。改变这个:
"(\\s{0,})<fund_id>([a-zA-Z0-9]{1,8}\\s)</fund_id>(\\s\\S0,})";
要
"(\\s{0,})<fund_id>([a-zA-Z0-9]{1,8}\\s)</fund_id>(\\s\\S{0,})";
missing --^