-1

str = Adob​​e Flash Player 11.4.402.287 (11.3 MB) のような文字列を取得しました。出力として Adob​​e Flash Player のみを抽出する必要があります。Plsは提案します..

私は次のような正規表現を使用してみました:

String str = "Adobe Flash Player 11.4.402.287 (11.3 MB)";
        Pattern p = Pattern.compile("^[a-zA-Z]+([0-9]+).*");
        Matcher m = p.matcher(str);

        if (m.find()) {
            System.out.println(m.group(1));
        }
4

3 に答える 3

2

で示唆されているように@MarkoTopolink、正規表現が役に立ち[\\p{L}\\s]+ました。ありがとう。

于 2012-10-30T08:59:05.203 に答える
1

これを試して:

    String str = "Adobe Flash Player 11.4.402.287 (11.3 MB)";
    Pattern p = Pattern.compile("^([a-zA-Z ]+)([0-9]+).*");
    Matcher m = p.matcher(str);

    if (m.find()) {
        System.out.println(m.group(1));
    }

あなたの試みには2つの問題があります:

  1. グループ化は を使用して行われ()ます。実際に必要なテキストのグループを定義していません
  2. 複数の単語を取得するには、スペースを追加する必要があります。
于 2012-10-30T09:02:09.750 に答える
0

正規表現を使用できます:

String str = "Adobe Flash Player 11.4.402.287 (11.3 MB)";
String [] strs = str.split("([ |0-9|.|(.*MB)]*) [ |0-9|.|(.*MB)]*");
for (String strng : strs) {
    System.out.println(strng.trim());
}
于 2012-10-30T09:00:01.627 に答える