シンプルウェイ制作班|WEB制作スタッフブログ

正規表現

2011年03月08日

最近は、WEBのコーディングでも正規表現を使うことが多くなってきました。
はじめは呪文のような記号が並んでいて、なんのことかさっぱりわかりませんでしたが、使えるようになるとそれほど難しくもなく便利なので、覚えておくと役に立ちます。

そこで、正規表現についてわかりやすく説明してあるサイトを紹介したいと思います。

サルにもわかる正規表現入門

名前の通り、サルにも(?)わかりやすく説明してあります。

といっても、よく使うものは限られていて、

.* : なんでもいい文字の連続
^  :行の先頭
$ :行の最後
[^A-Z] :A-Zを除く
() :グループ化

くらいでしょうか?

例を2つあげて簡単に説明します。

(例1)
たとえば、MT(Movable Tyle)のテンプレート作成時に出てくる

<$MTArchiveLink regex_replace="/template/(.*\/)[^\/]*$/","$1" abs2rel="1"$>

では、

regex_replace="/template/(.*\/)[^\/]*$/","$1"

の部分に正規表現が使われています。

これは、

regex_replace="/置換前の文字列/","置換後の文字列"

のような構造になっています。

置換前の文字列を見てみると、

template/(.*\/)[^\/]*$

なので、

最後に$が付いているときは最後から読んでいくと

$(行末に
[^\/](スラッシュ以外の:\/:スラッシュはメタ文字なので、通貨の円マーク(\)を文字の前につける)
*(文字がいくつかあって
template/(.*\/)(スラッシュがあったところから"template/"という文字で囲まれた部分をグループ化する

となります。

この場合、

template/blog/01/03/index.html…①

のような文字列が置換対象になります。

そして、置換後の文字列は"$1"となっていたので、置換前の文字列の中で()で囲まれてグループ化された部分を$1に入れる、という意味になります。

①のような文字列の場合だと、置換後の文字列は

blog/01/03/

となります。

(例2)
3行あいているところを1行にしたい、という場合を考えます。

今日は\n
天気が\n
よかった\n
\n
\n
今日は\n
天気が\n
悪かった\n
\n
\n
\n
終わり\n

という文字列があった場合、対象となる部分は

今日は\n
天気が\n
よかった\n
\n
\n

今日は\n
天気が\n
悪かった\n
\n
\n
\n

終わり\n

\n\n\n色の部分だけです。
\n\n\n色の部分は、改行が3つ連続していますが、3行連続の空行ではないため、置換したくありません。

このようなときは、正規表現を使って

置換前の文字列:
^\n\n\n

置換後の文字列:
\n

とします。

置換前の文字列に"^"を付けているので、行頭の改行を探し、そこから連続する改行を検索します。
そして、改行1つに置き換えます。

エディタにも正規表現を扱えるものがあるので、知っていると重宝します。














同じカテゴリー(お役立ちサイト)の記事画像
css2scss
写真の縦横比を固定して拡大縮小値を計算するツール
自分のデザインスキルがチェックできちゃうゲームのご紹介
CSS3 Patterns Gallery
拡縮自在★アイコンをWebフォントにしよう「IcoMoon」
Photoshop Express Editor
同じカテゴリー(お役立ちサイト)の記事
 css2scss (2016-03-14 10:00)
 写真の縦横比を固定して拡大縮小値を計算するツール (2015-08-12 15:08)
 自分のデザインスキルがチェックできちゃうゲームのご紹介 (2015-07-06 17:52)
 CSS3 Patterns Gallery (2014-08-01 18:03)
 拡縮自在★アイコンをWebフォントにしよう「IcoMoon」 (2014-07-18 11:29)
 Photoshop Express Editor (2014-07-08 13:37)
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。

コメントフォーム

名前:
メール:
URL:
コメント:
上の画像に書かれている文字を入力して下さい

<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

過去記事
最近のコメント
QRコード
QRCODE
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 29人
新規投稿

新規投稿するにはログインする必要があります。会員IDをお持ちでない方はIDを取得された後に投稿できるようになります。

このページの先頭へ