java - 解决以下正则表达式

标签 java regex

请考虑以下文本:

  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。

最佳答案

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

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

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

关于java - 解决以下正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13118688/

相关文章:

javascript - 正则表达式货币验证

java - Netbeans 找不到 java.io.InputStream

java - Java Android开发 “Failure in SSL library, usually a protocol”

java - Maven - 检测同一依赖项的多个版本

objective-c - 正则表达式提取两个字符或标签之间的所有子字符串

javascript - 如何在js替换函数中进行数字运算?

javascript - 链接检查正则表达式

java.lang.ClassCastException : ish. message.Message 无法转换为 android.app.Application

java - 图片无法加载

javascript - 将当前窗口或页面位置与正则表达式进行比较。 jQuery 或 JavaScript