3

请考虑以下文本:

  String tempStr =
            "$#<div style=\"text-align:left;\">$#Order-CAS No#$</div>$#abc#$";

    Pattern p = Pattern.compile("(?<=\\$#)(\\w*)(?=#\\$)");
    Matcher m = p.matcher(tempStr);

    List<String> tokens = new ArrayList<String>();
    while (m.find()) {
        System.out.println("Found a " + m.group() + ".");

但它只给我 abc ..我想要 Order-CASNo 和 abc 的答案。

4

2 回答 2

4

表达式\\w*与连字符或空格不匹配。试试[\\w\\s-]*吧。

Pattern p = Pattern.compile("(?<=\\$#)([\\w\\s-]*)(?=#\\$)");

在此处阅读有关字符类的更多信息:

于 2012-10-29T09:17:01.187 回答
0

终于得到解决方案。

Pattern p = Pattern.compile("(?<=\\$#)([\\w-\\s\\w]*)(?=#\\$)");
于 2012-10-29T09:31:46.400 回答