忍者ブログ
[PR] ()
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

by
Javaに記述する正規表現 (技術メモ)
// 使いたい文字の定義
String testdata = "!#$%&()*+,-./:;<=>?@[\]^_`{|}~";
StringBuffer sb = new StringBuffer();
for (int i = 0; i < testdata.length(); i++) {
    String ch = testdata.substring(i, i + 1);
    try {
        testdata.matches(ch);
    } catch(PatternSyntaxException e) {
        if ("\".equals(ch)) {
            sb.append("\");
        }
        sb.append("\");
    }
    sb.append(ch);
}
System.out.println("エスケープ正規表現:" + sb.toString().replaceAll("\\", "\\\\"));
System.out.println("チェック結果:" + testdata.matches("^[" + sb.toString() + "]+$"));

これらの特殊文字は許可したいっていう時に許可文字が多いと
正規表現でチェックかけたいところですが、
特殊文字ばかりだとどれをエスケープすればいいのか分かりません。
という時にこんな感じで実験するとJavaに記述すべき正規表現が
算出されます。

今回の例の結果だと
!#$%&\(\)\*\+,-./:;<=>\?@\[\\\]^_`\{|}~
がJavaに記述すべき(matchesの引数に渡すべき)正規表現の文字列になります。
Java表現上のエスケープ+正規表現としてのエスケープがあるので
基本的に""は2つで1セットです。
かおす。
PR
by yy3Trackbacks()Comments(0)
Comments
Comment Form
Subject

Name

Mail

Web

Pass
Comment

Trackbacks
Trackback Address
メモとか
MASTER : yy3
カレンダー
11 2025/12 01
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
最新記事
(10/28)
(08/18)
(07/27)
(07/27)
(07/15)
ブログ内検索
アクセス解析
OTHERS
Powered by 忍者ブログ
Designed by TABLE ENOCH
[PR]

△ページの先頭へ