0

私の文字列は:

Frequency/FA ID VerifiedFA0 FAID5(125)/FA1 FAID7(175)/FA2 FAID1(476)

私が作成しようとしている正規表現は、次の数値を抽出する必要があります。

125, 175, 476

私はこの例を見てそれをしましたが、もっと良いものがあるに違いありません。

myString.replaceAll(".+\\(([0-9]+)\\).+\\(([0-9]+)\\).+\\(([0-9]+)\\).*","$1,$2,$3")
4

3 に答える 3

3

replacing必要のないものすべてではなく、使用しPatternMatcherクラス分けし、必要なものを抽出することができます。

角かっこで囲まれた数字を抽出するための正規表現パターンは次のようになります。

\(\d+\)

+数量詞は1 or more、数字の繰り返しを照合するために使用されます。3数字だけを一致させたい場合は、{3}数量詞を\d:-で使用できます\(\d{3}\)

この正規表現パターンをMatcher#find()メソッドで適用して、その文字列からすべての数値を取得できます。実装の仕事はあなたに任せます。

于 2013-01-29T20:08:41.997 に答える
3

これをチェックしてください:

String s = "Frequency/FA ID VerifiedFA0 FAID5(125)/FA1 FAID7(175)/FA2 FAID1(476)";
Pattern patt = Pattern.compile("\\(\\d+\\)");
Matcher match = patt.matcher(s);
while(match.find()){
    System.out.println(match.group());
}
于 2013-01-29T20:30:31.557 に答える
1

わずかな変更:

これにより、括弧内の正確に3桁が検出されます:((\ d \ d \ d))

実際の文字列値(Javaの場合)は次のとおりです。"(\\(\\d\\d\\d\\))"

JavaRegExテストページでテストする

于 2013-01-29T20:17:03.657 に答える