【问题标题】:Java regex matchingJava 正则表达式匹配
【发布时间】:2010-10-11 01:15:59
【问题描述】:

我需要解析一个文件(从一个字符串构建)搜索单行或多行文本的出现。这个解决方案会一直有效吗?如果不是 - 我应该如何更改它?

private int parseString(String s){
    Pattern p = Pattern.compile(searchableText);
    Matcher m = p.matcher(s);
    int count = 0;
    while(m.find()) {
        count++;
    }

    return count;
}

【问题讨论】:

    标签: java regex pattern-matching


    【解决方案1】:
    • 如果文本可以包含正则表达式元字符,请考虑 Pattern.quote
    • 考虑java.util.ScannerfindWithinHorizon

    【讨论】:

      【解决方案2】:

      对于多行字符串,您需要将换行代码调整为文件内容,或者(可能更好)使用正则表达式来接受 \n 和 \r 的所有各种组合。

      【讨论】:

        【解决方案3】:

        考虑搜索a\s+b\s+c\s+,其中abc 是您要搜索的单词(或字符)序列。它可能(过度)贪婪,但希望它应该提供洞察力。您也可以先对文本进行规范化。

        【讨论】:

          猜你喜欢
          • 2011-03-30
          • 2011-05-26
          • 1970-01-01
          • 1970-01-01
          • 2010-11-06
          • 2015-06-03
          • 2011-02-17
          • 2011-01-24
          相关资源
          最近更新 更多