<< 前 ホーム 次 >>

bakaid: 20130604

「Javaに正規表現なんてあったのか!?」という声が
ありますね。Java SEに正規表現が取り込まれたのは
Java 1.4ですから、かなり前の話です。

さて、文字列を検索するときに大文字小文字を無視
したいということがあります。Stringには
compareToIgnoreCaseという比較メソッドはありますが、
肝心の検索にはindexOfしかありません。ではどう
するか。

正規表現を使います。

private boolean findDownIgnoreCase(EditText edit, String needle) {
    if (needle.isEmpty()) {
        return false;
    }
    int index = edit.getSelectionEnd();
    String haystack = edit.getText().toString();
    Pattern pat = Pattern.compile(Pattern.quote(needle), Pattern.CASE_INSENSITIVE);
    Matcher mat = pat.matcher(haystack);
    if (!mat.find(index)) {
        return false;
    }
    int st = mat.start();
    int ed = mat.end();
    edit.setSelection(st, ed);
    return true;
}

https://github.com/tkojitu/WagtailET/blob/master/src/org/jitu/wagtail/et/EditControl.java

正規表現をコンパイルするときにCASE_INSENSITIVEを
渡すことで、大文字小文字を無視することができます。

本家Permlink

<< 前 ホーム 次 >>


Copyright © 1905 tko at jitu.org

バカが征く on Rails