- トップページ
- 特集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






