- トップページ
- 特集PC技術
- とあるJavaScriptの情報図書
- 【JavaScript】[ECMAScript] 正規表現
とあるJavaScriptの情報図書
【JavaScript】[ECMAScript] 正規表現
ここでは、正規表現について説明をします。
目次
[1] 正規表現の基礎
あいまいな文字列パターンを表現できる機能です。
正規表現の基本的な構文を説明します。
正規表現を利用する際にはRegExpオブジェクトを生成する必要があります。
RegExpオブジェクトを生成する方法は2種類あります。
両者には違いがあるので注意しましょう。
正規表現リテラルを使う場合
「/」をエスケープ処理をして定義する必要があります。
RexExpオブジェクト生成構文を使う場合
「¥」をエスケープ処理をして定義する必要があります。
正規表現を行ってみる
実際に正規表現を実行してみます。
主な実行方法として2種類あります。
文字列データ型.match(正規表現);
正規表現インスタンス.exec(正規表現);
var num = "10x200"; var reg = /¥d*/g; document.writeln(num.match(/¥d*/g)); document.writeln(reg.exec("10x200"));
「正規表現」の記述方法には様々なルールがあるので、とりあえず、形式を抑えます。
「//」で囲って指定します。上記のプログラムは数字データがあるかどうか調べます。
2つは同じようなプログラムですが、詳細は違います。後述します。
「/g」は正規表現のオプション機能です。
[2] 文字関係の正規表現
正規表現で文字を探すための記述方法です。
該当するデータを発見できなかったときは「null」を返します。
記述方法 | 意味 |
---|---|
. | 任意の1文字 |
¥w | 大文字、小文字の英字、数字、アンダースコア |
¥W | 文字以外 |
¥d | 数字に一致 |
¥D | 数字以外 |
¥s | 空白文字に一致 |
¥S | 空白文字以外 |
[3] 繰り返しの正規表現
正規表現で繰り返し該当するデータを探すときに使用できます。
記述方法 | 意味 |
---|---|
{n,m} | 直前の項目をnからm回まで |
{n,} | 直前の項目をn回以上繰り返す |
{n} | 直前の項目をn回繰り返す |
? | 直前の項目を0回または1回 |
+ | 直前の項目を1回以上繰り返す |
* | 直前の項目を0回以上繰り返す |
[4] 正規表現のオプション
正規表現のオプションについて説明をします。
記述方法 | 意味 |
---|---|
g | 文字列全体とマッチング |
i | 大文字か小文字を区別するかどうか |
m | 複数行対応するか |
[5] その他の正規表現
上記以外の正規表現について説明をします。
記述方法 | 意味 |
---|---|
¥n | 改行 |
¥r | 復帰 |
¥t | タブ文字 |
¥s | 空白文字 |
¥S | 空白文字以外 |
¥~ | ~以外 |
[6] 複雑な正規表現
構文を説明しましたがいまいち使い方がわからないと思います。
ここでは、実際に使用されるような正規表現を書いておこうと思います。
実際の開発に役に立てば幸いです。
URLを表す正規表現パターン
// 正規表現リテラル var pattern = /http(s)?:¥/¥/([¥w-]+¥.)+[¥w-]+(¥/[\w- .¥/?&&=]*)?/gi; // RegExpコンストラクタ var pattern = new RegExp('http(s)?://([¥¥w-]+¥¥.)+[¥¥w-]+(/[¥¥w- ./?%&=]*)?','gi');
[7] 更新履歴
日付 | 詳細 |
---|---|
2011/07/29 | コンテンツ公開 |
コメントの投稿
トラックバックURL
http://www.isl.ne.jp/cgi-bin/mt/mt-tb.cgi/1689