2

ドットのみが含まれ、他の特殊文字が含まれていない場合、角括弧で囲まれたテキストを抽出するにはどうすればよいですか? たとえば、「com.package.file」を抽出したい

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

2 に答える 2

2
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
}
于 2012-08-22T12:31:59.833 に答える
0

次の行の何か:

^\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));
于 2012-08-22T12:31:22.713 に答える