正则表达式不接受空格

时间:2015-04-15 15:47:54

标签: java regex

以下是代码段:

    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>。正则表达式模式需要进行哪些更改?

3 个答案:

答案 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 --^