正規表現など、Linux Apache MySQL PHP PostgreSQL Perl Plagger FreeBSD DNS学習中。器用貧乏道まっしぐら。ふぅ、はまってばっかし…

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

正規表現

「¥」は実際は半角ですが分かりやすくするために全角で表記しています。

文字クラス範囲指定

[0-9]    数字
[a-z] 英字(小文字)
[A-Z] 英字(大文字)
[a-zA-Z0-9] 英数字
[1-5]    1~5の範囲にマッチ
[12] 1か2にマッチ

否定文字クラス範囲指定


[^0-9]   数字以外
[^a-zA-Z]  英字以外
[^5R] 5,R以外にマッチ

文字クラス略記

¥d     [0-9]
¥s     空白・タブ・改行・復帰・改ページ
¥w     [a-zA-Z0-9]
¥D \d以外
¥s     \s以外
¥W \w以外

POSIXブラケット

[:alnum:] 英数字
[:alpha:]  アルファベット
[:blank:]  スペースとタブ
[:cntrl:] 制御文字
[:digit:] 数字
[:graph:] スペース・改行以外の表示可能文字
[:lower:] 小文字
[:print:] [:graph:]+スペース
[:space:] スペース・タブ・開業
[:upper:] 大文字
[:xdigit:] 数字+a-f+A-F(16進数文字)

.      任意の1文字
| 選択

量指定子、範囲指定繰り返し制御

? 0または1個
* 0以上の任意の個数
+ 1以上の任意の個数
{n} n個
{n,} n個以上の任意の個数
{n,m} n個以上m以下の任意の個数

例)

https? http,httpsのいずれかにマッチ
got(ten)? got,gottenのいずれかにマッチ
go*d gd,god,goood等にマッチ
go+d god,good等にマッチ
[ \t]+   スペース、タブの繰り返しにマッチ
(mew-)+mew mew-mew-mewなどにマッチ
a{5} aaaaaにマッチ
A{1,3} A,AA,AAAにマッチ
(GO!){3,} GO!GO!GO等にマッチ

環境によって少し違うがデフォルトで最長一致になっている。

a+

aaaaaaaaaa(aが10個)
という文字列の場合
a,aa,aaa,…と10項目マッチすることになるが最長一致の基準で最長の項目
aaaaaaaaaaにまっちすることになる。

最短一致を指定する場合は?をつける。

?? 0または1個
*? 0以上の任意の個数
+? 1以上の任意の個数
{n,}? n個以上の任意の個数
{n,m}? n個以上m以下の任意の個数

位置に対するマッチ

^ 文字列の先頭
$ 文字列の末尾
¥b 単語境界
¥B 単語境界以外
¥< 単語の先頭
¥> 単語の末尾

このエントリーにお寄せ頂いたコメント

URL:
コメント:
 

このエントリーにお寄せ頂いたトラックバック

このエントリーへのトラックバックURL

スポンサードリンク

Copyright © 今度こそ 独習 FreeBSD Linux Apache MySQL PHP PostgreSQL Perl Plagger DNS All Rights Reserved.
FC2ブログ [PR]