正規表現入門
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* 正規表現入門 [#a7f3600f]
#contents
** 概要・事前準備 [#ycaf4020]
- 主な用途はエラーチェック
- 今回はJavaScriptを利用
** はじめての正規表現 [#jaa6f0b9]
- index.htmlを作成
<!DOCTYPE=html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>正規表現の勉強</title>
</head>
<body>
<script>
var s = '@taguchi, @fkoji, @dotinstall';
var rs = s.match(/taguchi/);
if (rs) {
console.log('マッチしました!');
// Webコンソールに出力
}
</script>
</body>
</html>
** メタ文字 [#u10605e4]
- []を使った表現
// [abc] -> abcの任意一文字
// [a-z] -> aからz
// [^abc] -> abc以外
- .^Sを使った表現
// . -> 任意の一文字
var rs = s.match(/t.guchi/);
var rs = s.match(/t...../);
// ^ -> 行頭
var rs = s.match(/^@taguchi/);
// $ -> 行末
var rs = s.match(/@dotinstall$/);
- {}を使った表現
// {} -> 直前の文字の繰り返す回数
// 0{2} -> 00
// 0{2,} -> 2文字以上 -> 00, 000, 0000000
// 0{2,4} -> 2文字以上4文字以内 -> 00, 000, 0000
// [a-z]{5} -> aからzの5文字
// [a-z]{3,6} -> aからzの3文字以上6文字以内
- ?*+を使った表現
// a? -> 0 or 1 -> , a
// a* -> 0 or more -> , a, aaaaa, aaaaaaaaa
// a+ -> 1 or more -> a, aaa, aaaaaa, aaaaaaa
- ()|を使った表現
// (abc)* -> , abc, abcabc
// | -> or
// (abc|def) -> abc, def
- \に続くメタ文字
// \n -> 改行
// \t -> タブ
// \d -> 数字 [0-9]
// \w -> 英数字_ [A-Za-z0-9_]
// \s -> スペース, タブ
// \メタ文字 -> メタ文字をパターンマッチさせたい場合
- フラグについて
// フラグ=オプション
// i -> 大文字小文字を区別しない
var rs = s.match(/taguchi/i); // taguchi, Taguchi, TAGUCHI
// g -> すべてのマッチした要素を配列で返す
var rs = s.match(/a/g);
// m -> 複数行に対応させる -> ^ $
- 最小マッチについて
// * + のあとの ? -> 最小マッチをさせる
// +? *?
var s = 'taguchi@dotinstall.com, fkoji@dotinstall.com, a...
var rs = s.match(/.+@dotinstall.com/);
var rs = s.match(/.+?@dotinstall.com/);
- キャプチャとRegExp
// () RegExp -> マッチした文字列を抽出する時に使用
var s = 'taguchi@dotinstall.com';
var rs = s.match(/(.+?)@dotinstall.com/);
console.log(RegExp.$1); // 直前にマッチした括弧内の文字...
** ツイッターIDをマッチさせる [#ye1d27c4]
<!DOCTYPE=html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>正規表現の勉強</title>
</head>
<body>
<script>
// ツイッターID
var s = '@taguchi';
var rs = s.match(/(@[A-Za-z0-9_]{1,15})/);
console.log(RegExp.$1);
</script>
</body>
</html>
"@taguchi"
** タグの中身を抽出する [#f53a2d53]
// タイトルタグ
var s = '<title>ドットインストール</title>';
var rs = s.match(/<title>([^<]+)<\/title>/); // 終端の<...
console.log(RegExp.$1);
"ドットインストール"
** 日付を変換する [#q9759eaa]
// 日付を日本語表記になおす
var s = '2012-03-24'; // 2012年03月24日
var rs = s.match(/(\d{4})[-\/](\d{2})[-\/](\d{2})/);
console.log(RegExp.$1+'年'+RegExp.$2+'月'+RegExp.$3+'日');
"2012年03月24日"
** 文字列置換(Atom) [#fa1ee69e]
- 置換前文字列
=$D8+$F8+$H8+$J8+$L8+$N8
=$D19+$F19+$H19+$J19+$L19+$N19
=$D30+$F30+$H30+$J30+$L30+$N30
=$D42+$F42+$H42+$J42+$L42+$N42
=$D43+$F43+$H43+$J43+$L43+$N43
=$D44+$F44+$H44+$J44+$L44+$N44
- 置換後文字列
=$P8+$R8+$T8+$V8+$X8+$Z8
=$P19+$R19+$T19+$V19+$X19+$Z19
=$P30+$R30+$T30+$V30+$X30+$Z30
=$P42+$R42+$T42+$V42+$X42+$Z42
=$P43+$R43+$T43+$V43+$X43+$Z43
=$P44+$R44+$T44+$V44+$X44+$Z44
- 検索対象(Find)
^=\$[a-z]([0-9]{1,})\+\$[a-z]([0-9]{1,})\+\$[a-z]([0-9]{...
- 置換文字列(Replace)
=$P$1+$R$2+$T$3+$V$4+$X$5+$Z$6
終了行:
* 正規表現入門 [#a7f3600f]
#contents
** 概要・事前準備 [#ycaf4020]
- 主な用途はエラーチェック
- 今回はJavaScriptを利用
** はじめての正規表現 [#jaa6f0b9]
- index.htmlを作成
<!DOCTYPE=html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>正規表現の勉強</title>
</head>
<body>
<script>
var s = '@taguchi, @fkoji, @dotinstall';
var rs = s.match(/taguchi/);
if (rs) {
console.log('マッチしました!');
// Webコンソールに出力
}
</script>
</body>
</html>
** メタ文字 [#u10605e4]
- []を使った表現
// [abc] -> abcの任意一文字
// [a-z] -> aからz
// [^abc] -> abc以外
- .^Sを使った表現
// . -> 任意の一文字
var rs = s.match(/t.guchi/);
var rs = s.match(/t...../);
// ^ -> 行頭
var rs = s.match(/^@taguchi/);
// $ -> 行末
var rs = s.match(/@dotinstall$/);
- {}を使った表現
// {} -> 直前の文字の繰り返す回数
// 0{2} -> 00
// 0{2,} -> 2文字以上 -> 00, 000, 0000000
// 0{2,4} -> 2文字以上4文字以内 -> 00, 000, 0000
// [a-z]{5} -> aからzの5文字
// [a-z]{3,6} -> aからzの3文字以上6文字以内
- ?*+を使った表現
// a? -> 0 or 1 -> , a
// a* -> 0 or more -> , a, aaaaa, aaaaaaaaa
// a+ -> 1 or more -> a, aaa, aaaaaa, aaaaaaa
- ()|を使った表現
// (abc)* -> , abc, abcabc
// | -> or
// (abc|def) -> abc, def
- \に続くメタ文字
// \n -> 改行
// \t -> タブ
// \d -> 数字 [0-9]
// \w -> 英数字_ [A-Za-z0-9_]
// \s -> スペース, タブ
// \メタ文字 -> メタ文字をパターンマッチさせたい場合
- フラグについて
// フラグ=オプション
// i -> 大文字小文字を区別しない
var rs = s.match(/taguchi/i); // taguchi, Taguchi, TAGUCHI
// g -> すべてのマッチした要素を配列で返す
var rs = s.match(/a/g);
// m -> 複数行に対応させる -> ^ $
- 最小マッチについて
// * + のあとの ? -> 最小マッチをさせる
// +? *?
var s = 'taguchi@dotinstall.com, fkoji@dotinstall.com, a...
var rs = s.match(/.+@dotinstall.com/);
var rs = s.match(/.+?@dotinstall.com/);
- キャプチャとRegExp
// () RegExp -> マッチした文字列を抽出する時に使用
var s = 'taguchi@dotinstall.com';
var rs = s.match(/(.+?)@dotinstall.com/);
console.log(RegExp.$1); // 直前にマッチした括弧内の文字...
** ツイッターIDをマッチさせる [#ye1d27c4]
<!DOCTYPE=html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>正規表現の勉強</title>
</head>
<body>
<script>
// ツイッターID
var s = '@taguchi';
var rs = s.match(/(@[A-Za-z0-9_]{1,15})/);
console.log(RegExp.$1);
</script>
</body>
</html>
"@taguchi"
** タグの中身を抽出する [#f53a2d53]
// タイトルタグ
var s = '<title>ドットインストール</title>';
var rs = s.match(/<title>([^<]+)<\/title>/); // 終端の<...
console.log(RegExp.$1);
"ドットインストール"
** 日付を変換する [#q9759eaa]
// 日付を日本語表記になおす
var s = '2012-03-24'; // 2012年03月24日
var rs = s.match(/(\d{4})[-\/](\d{2})[-\/](\d{2})/);
console.log(RegExp.$1+'年'+RegExp.$2+'月'+RegExp.$3+'日');
"2012年03月24日"
** 文字列置換(Atom) [#fa1ee69e]
- 置換前文字列
=$D8+$F8+$H8+$J8+$L8+$N8
=$D19+$F19+$H19+$J19+$L19+$N19
=$D30+$F30+$H30+$J30+$L30+$N30
=$D42+$F42+$H42+$J42+$L42+$N42
=$D43+$F43+$H43+$J43+$L43+$N43
=$D44+$F44+$H44+$J44+$L44+$N44
- 置換後文字列
=$P8+$R8+$T8+$V8+$X8+$Z8
=$P19+$R19+$T19+$V19+$X19+$Z19
=$P30+$R30+$T30+$V30+$X30+$Z30
=$P42+$R42+$T42+$V42+$X42+$Z42
=$P43+$R43+$T43+$V43+$X43+$Z43
=$P44+$R44+$T44+$V44+$X44+$Z44
- 検索対象(Find)
^=\$[a-z]([0-9]{1,})\+\$[a-z]([0-9]{1,})\+\$[a-z]([0-9]{...
- 置換文字列(Replace)
=$P$1+$R$2+$T$3+$V$4+$X$5+$Z$6
ページ名: