解説
正規表現は文字列のパターンを表現する方法です。検索や置換で用いられて、複雑な条件で文字列に一致させることが可能です。正規表現では、メタ文字、メタキャラクターと呼ばれる記号を使い、文字を抽象化して出現パターンを記します。
この正規表現は、多くのプログラミング言語や、テキストエディタで利用できます。使用するプログラミング言語などの環境によって、微妙に仕様が違うので、使用前に確認が必要です。本記事では、JavaScriptの正規表現を中心に扱います(他のプログラミング言語の正規表現も、大きな差はありません)。
今回は、その正規表現の中から、先頭を表すメタ文字「^」と、末尾を表すメタ文字「$」を紹介します。
^ 文字列の先頭 「^~」のように指定 $ 文字列の末尾 「~$」のように指定
console.log("http://crocro.com/".replace(/^http/, "@"));
console.log("C:\\hoge\\hoge.txt".replace(/\.txt$/, "@"));
@://crocro.com/ C:\hoge\hoge@
これらの記号は、文字列全体の先頭と末尾が対象になります。しかし、長い文章では、各行の先頭と末尾を対象にしたい時もあります。その際はmフラグを設定します。このmは、multilineの意味です。
console.log(
("http://crocro.com/hoge.html\n"
+"http://crocro.com/pic1.jpg\n"
+"http://crocro.com/pic2.jpg\n"
+"http://crocro.com/hoge.json")
.match(/[^/]+?$/mg)
);
["hoge.html", "pic1.jpg", "pic2.jpg", "hoge.json"]
サンプル
正規表現で「先頭と末尾の一致」を利用したコードを、JavaScriptで簡単に書いてみます。
<html>
<head>
<title>「先頭と末尾の一致」のサンプル</title>
</head>
<body>
<pre><script type="text/javascript">
var str =
"=====注目=====\n"
+ "大売り出しセール実施中!!!!!\n"
+ "#####今すぐテンポにGoだ!!#####\n"
+ "http://hoge.com//#!sale\n"
// 先頭の記号を除去
str = str.replace(/^[=!#]+/mg, "");
document.writeln("先頭の記号を除去 : \n" + str + "\n");
// 末尾の記号を除去
str = str.replace(/[=!#]+$/mg, "");
document.writeln("末尾の記号を除去 : \n" + str + "\n");
</script></pre>
</body>
</html>
先頭の記号を除去 : 注目===== 大売り出しセール実施中!!!!! 今すぐテンポにGoだ!!##### http://hoge.com//#!sale 末尾の記号を除去 : 注目 大売り出しセール実施中 今すぐテンポにGoだ http://hoge.com//#!sale
