Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 言語の要素 »

 

正規表現の例

次の表は、正規表現の使用例を示します。これらの例はすべて REGEXP で機能します。一部は SIMILAR TO でも機能し、その場合は「例」の欄にその旨が示されています。結果は、使用する探索条件によって異なります。SIMILAR TO で機能する正規表現の場合は、大文字と小文字やアクセント記号を区別するかどうかによって、結果はさらに異なります。

REGEXP と SIMILAR TO における一致や評価範囲の動作の比較については、LIKE 探索条件、REGEXP 探索条件、SIMILAR TO 探索条件を参照してください。

これらの例をリテラル文字列 ('.+@.+\\..+' など) で使用する場合は、円記号を 2 つ重ねる必要があるので、注意してください。

一致のサンプル
「クレジット・カード番号 (REGEXP のみ): 」

ビザ:

4[0-9]{3}\s[0-9]{4}\s[0-9]{4}\s[0-9]{4}

マスターカード:

5[0-9]{3}\s[0-9]{4}\s[0-9]{4}\s[0-9]{4}

アメリカン・エキスプレス:

37[0-9]{2}\s[0-9]{4}\s[0-9]{4}\s[0-9]{4}

ディスカバー:

6011\s[0-9]{4}\s[0-9]{4}\s[0-9]{4}

一致するもの (ビザ):4123 6453 2222 1746

一致しないもの (ビザ):

3124 5675 4400 4567, 4123-6453-2222-1746

同様に、マスターカードでは、5 から始まり、4 つの数字のサブセット間にスペースがある 16 個の数字のセットに一致します。アメリカン・エキスプレスとディスカバーは同じですが、それぞれ 37 と 6011 から始まります。

「日付 (REGEXP および SIMILAR TO): 」

([0-2][0-9]|30|31)/(0[1-9]|1[0-2])/[0-9]{4}

一致するもの:31/04/1999、15/12/4567

一致しないもの:31/4/1999、31/4/99、1999/04/19、42/67/25456

「Windows の絶対パス (REGEXP のみ):」

([A-Za-z]:|\\)\\[[:alnum:][:whitespace:]!"#$%&'()+,-.\\;=@\[\]^_`{}~.]*

一致するもの:\\server\share\file

一致しないもの:\directory\directory2、/directory2

「電子メール・アドレス (REGEXP のみ):」

[[:word:]\-.]+@[[:word:]\-.]+\.[[:alpha:]]{2,3}

一致するもの:abc.123@def456.com、_123@abc.ca

一致しないもの:abc@dummy、ab*cd@efg.hijkl

「電子メール・アドレス (REGEXP のみ):」

.+@.+\..+

一致するもの:*@qrstuv@wxyz.12345.com、__1234^%@@abc.def.ghijkl

一致しないもの:abc.123.*&ca、^%abcdefg123

「HTML の 16 進カラー・コード (REGEXP および SIMILAR TO):」

[A-F0-9]{6}

一致するもの:AB1234、CCCCCC、12AF3B

一致しないもの:123G45、12-44-CC

「HTML の 16 進カラー・コード (REGEXP のみ):」

[A-F0-9]{2}\s[A-F0-9]{2}\s[A-F0-9]{2}

一致するもの:AB 11 00、CC 12 D3

一致しないもの:SS AB CD、AA BB CC DD、1223AB

「IP アドレス (REGEXP のみ): 」

((2(5[0-5]|[0-4][0-9])|1([0-9][0-9])|([1-9][0-9])|[0-9])\.){3}(2(5[0-5]|[0-4][0-9])|1([0-9][0-9])|([1-9][0-9])|[0-9])

一致するもの:10.25.101.216

一致しないもの:0.0.0、256.89.457.02

「Java コメント (REGEXP のみ):」

/\*.*\*/|//[^\n]*

一致するもの:/* と */ の間にある Java コメント、または先頭に // が付く 1 行のコメント

一致しないもの:a=1

「通貨 (REGEXP のみ):」

(\+|-)?\$[0-9]*\.[0-9]{2}

一致するもの:$1.00、-$97.65

一致しないもの:$1、1.00$、$-75.17

「正の値、負の値、小数値 (REGEXP のみ): 」

(\+|-)?[0-9]+(\.[0-9]+)?

一致するもの:+41、-412、2、7968412、41、+41.1、-3.141592653

一致しないもの:++41、41.1.19、-+97.14

「パスワード (REGEXP および SIMILAR TO):」

[[:alnum:]]{4,10}

一致するもの:abcd、1234、A1b2C3d4、1a2B3

一致しないもの:abc、*ab12、abcdefghijkl

「パスワード (REGEXP のみ):」

[a-zA-Z]\w{3,7}

一致するもの:AB_cd、A1_b2c3、a123_

一致しないもの:*&^g、abc、1bcd

「電話番号 (REGEXP および SIMILAR TO):」

([2-9][0-9]{2}-[2-9][0-9]{2}-[0-9]{4})|([2-9][0-9]{2}\s[2-9][0-9]{2}\s[0-9]{4})

一致するもの:519-883-6898、519 888 6898

一致しないもの:888 6898、5198886898、519 883-6898

「文章 (REGEXP のみ):」

[A-Z0-9].*(\.|\?|!)

一致するもの:Hello, how are you?

一致しないもの:i am fine

「文章 (REGEXP のみ):」

[[:upper:]0-9].*[.?!]

一致するもの:Hello, how are you?

一致しないもの:i am fine

「社会保障番号 (REGEXP および SIMILAR TO): 」

[0-9]{3}-[0-9]{2}-[0-9]{4}

一致するもの:123-45-6789

一致しないもの:123 45 6789、123456789、1234-56-7891

「URL (REGEXP のみ):」

(http://)?www\.[a-zA-Z0-9]+\.[a-zA-Z]{2,3}

一致するもの:http://www.sample.com、www.sample.com

一致しないもの:http://sample.com、http://www.sample.comm

参照