0

基本的な考え方は、"text1.text2" の形式で文字列の任意の部分を抜き出したいということです。私がやりたいことの入力と出力の例は次のとおりです。

"employee.first_name" ==> "employee.first_name"
"2 * employee.salary AS double_salary" ==> "employee.salary"

これまでのところ、.split(" ") だけがあり、必要なものと .split(".") を見つけました。よりクリーンな方法はありますか?

4

4 に答える 4

1

を使用しsplitて文字列をフラグメントに分割する必要があります。次に、メソッド.を使用してこれらのフラグメントのそれぞれを検索し、目的のフラグメントを取得します。contains

どうぞ:

public static void main(String args[]) {
    String str = "2 * employee.salary AS double_salary";
    String arr[] = str.split("\\s");
    for (int i = 0; i < arr.length; i++) {
        if (arr[i].contains(".")) {
            System.out.println(arr[i]);
        }
    }
}
于 2013-09-29T06:28:59.303 に答える
0

私はJAVAの専門家ではありませんが、Pythonで正規表現を使用し、インターネットのチュートリアルに基づいているr'(\S*)\.(\S*)'ので、パターンとして使用することを提案します. Pythonで試してみましたが、あなたの例ではうまくいきました。

ただし、複数のドットを連続して使用する場合は、バグがあります。のようなものを一致させようとしている場合first.second.third、このパターン('first.second', 'third')は一致したグループとして識別され、ベスト マッチ戦略に関連していると思います。

于 2013-09-29T07:44:28.383 に答える