4

次のような文字列がいくつかあります。

text (255)
varchar (64)    
...

( と ) の間の数を調べて、それを文字列に格納したいと思います。つまり、明らかに、これらの長さを文字列に格納します。正規表現の解析部分を除いて、残りの部分を理解しました。正規表現パターンを理解するのに苦労しています。

どうすればいいですか?

サンプルコードは次のようになります。

Matcher m = Pattern.compile("<I CANT FIGURE OUT WHAT COMES HERE>").matcher("text (255)");

また、正規表現パターンを直接取得できる正規表現解析用のチート シートがあるかどうかを知りたいです。

4

5 に答える 5

13

単純な文字列の一致を使用します

String s = "text (255)";
int start = s.indexOf('(')+1;
int end = s.indexOf(')', start);
if (end < 0) {
    // not found
} else {
    int num = Integer.parseInt(s.substring(start, end));
}

正規表現を使用すると、コードが簡単になる場合がありますが、すべての場合に使用する必要があるわけではありません。これは、単純な文字列 indexOf と substring が高速で短いだけでなく、より重要なことに、理解しやすいものであると思われます。

于 2013-07-30T19:02:00.680 に答える
2
Matcher m = Pattern.compile("\\((\\d+)\\)").matcher("text (255)");
if (m.find()) {
    int len = Integer.parseInt (m.group(1));
    System.out.println (len);
}
于 2013-07-30T19:02:39.807 に答える