0

区切り文字付きのキー文字列に基づいてテキスト フィールドの値を検索するための Java ベースのオープン ソース フレームワークはありますか?

例:

キー: ユーザー名 開始区切り文字: ; 終了区切り文字: ;

キー: 開始区切り文字: ; 終了区切り文字: ;

入力例: ユーザー名が ;surenraju; のユーザー 2013 年 5 月 2 日木曜日の午後 2 時 30 分にシステムにログインしました。

結果: ユーザー名 - スレンラージュ
on - 2013 年 5 月 2 日 (木) 午後 2:30

前もって感謝します。

4

1 に答える 1

1

この問題は正規表現で解決しました。

サンプルコード:

    ArrayList<String> keys = new ArrayList<String>();
    keys.add("username");
    keys.add("on");
    String startDelimiter = ":";
    String endDelimiter = ":";
    String searchStr = "A user with username :suren: logged into the system on :22 May 2013 2:30 PM:";
    for (String key : keys) {
        String pattern = "("+key+")[ ]*?"+startDelimiter+"([^" +endDelimiter+ "]+)"+endDelimiter;
        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(searchStr);
        while (m.find()) {
            System.out.println("Key: " + m.group(1) + " Value: "
                    + m.group(2));
        }
    }

テスト

I. キー: ユーザー名 開始区切り文字: ; 終了区切り文字: ;

キー (この場合はユーザー名) が続き、値が開始区切り文字と終了区切り文字 (この場合は ;) の間にある値を見つける必要があります。

Ⅱ.キー: 開始区切り文字: ; 終了区切り文字: ;

サンプル入力:

ユーザー名が ;suren; のユーザー 2013 年 5 月 2 日木曜日の午後 2 時 30 分にシステムにログインしました。

結果: I. ユーザー名 - スレン II. 2013 年 5 月 2 日(木)午後 2 時 30 分

于 2013-05-22T08:59:34.497 に答える