どのように私はJavaで正規表現で二マッチャーを得ることができますか?

事:

私は間の正規表現パターンで二マッチャーを抽出したい-_、この文字列に:

VA-123456-124_VRG.tif

私はこれを試してみました:

Pattern mpattern = Pattern.compile("-.*?_");

しかし、私は取得123456-124Javaで上記の正規表現のために。

私は必要です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]);

しかし、ここで注意すべき点は、それは非常に具体的ではないということです、そしてあなたの他のデータのために失敗することがあります。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=172572&siteId=1