【问题标题】:Java Regular expression to extract text from square bracketJava正则表达式从方括号中提取文本
【发布时间】:2012-08-22 20:56:14
【问题描述】:

如果文本只包含点而没有其他特殊字符,如何提取方括号中的文本? 例如我想从中提取“com.package.file”

 "ERR|appLogger|[Manager|Request]RequestFailed[com.package.file]uploading[com.file_upload]"

【问题讨论】:

    标签: java regex


    【解决方案1】:
    String s = "ERR|appLogger|[Manager|Request]RequestFailed[com.package.file]uploading[com.file]";
    Pattern pattern = Pattern.compile("\\[([A-Za-z0-9.]+)\\]");
    Matcher m = pattern.matcher(s);
    if (m.find()) {
        System.out.println(m.group(1)); // com.package.file
    }
    

    【讨论】:

    • 这解决了我的问题。但我想要修改,现在我也得到方括号。我想提取文本而不需要外部方括号。这意味着我需要“com.package .file”而不是“[com.package.file]”
    • @RemyaPoulose:把括号拉到捕获组外\\[([A-Za-z0-9.]+)\\]
    【解决方案2】:

    以下内容:

    ^\w+\|\w+\|\[\w+\|\w+\]\w+\[([\w\.]+)\]\w+\[[\w\.\_]+\]$
    

    可以让你捕捉到它。

    Pattern pattern = Pattern.compile("^\\w+\\|\\w+\\|\\[\\w+\\|\\w+\\]\\w+\\[([\\w\\.]+)\\]\\w+\\[[\\w\\.\\_]+\\]$", Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher("ERR|appLogger|[Manager|Request]RequestFailed[com.package.file]uploading[com.file_upload]");
    System.out.println(matcher.group(1));
    

    【讨论】:

      猜你喜欢
      • 2011-01-25
      • 2011-01-25
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 2012-06-16
      相关资源
      最近更新 更多