事:
私は間の正規表現パターンで二マッチャーを抽出したい-
と_
、この文字列に:
VA-123456-124_VRG.tif
私はこれを試してみました:
Pattern mpattern = Pattern.compile("-.*?_");
しかし、私は取得123456-124
Javaで上記の正規表現のために。
私は必要です124
。
私はこれをどのように達成することができますか?
ティムBiegeleisen:
私は、できるだけ具体的には、ここで正式なパターンマッチを使用します。私はこのパターンを使用します。
^[^-]+-[^-]+-([^_]+).*
その後、可能な一致する最初のキャプチャグループを確認してください。ここで動作するコードスニペットは、次のとおりです。
String input = "A-123456-124_VRG.tif";
String pattern = "^[^-]+-[^-]+-([^_]+).*";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(input);
if (m.find()) {
System.out.println("Found value: " + m.group(1) );
}
124
デモ
ちなみに、こちらもうまくいく1つのライナーがあります:
System.out.println(input.split("[_-]")[2]);
しかし、ここで注意すべき点は、それは非常に具体的ではないということです、そしてあなたの他のデータのために失敗することがあります。