0

正規表現のメタ文字 纏め

{} → 直前の文字の繰り返す回数

0{2}  → 00
0{2,} → 00 000 000000000 直前の文字を2回以上繰り返し
0{2,4}→ 00 000 0000 直前の文字を2回〜4回までの繰り返し

[a−z]{5} aからZで構成される5つの文字列
[a−z]{4,8} 4文字以上8文字以下のaからzで構成される文字列

くりかえし

? a? → 直前の文字があるか?ないか? 0 or 1   → 空文字,a
* a* → 直線の文字0文字以上     0 or more → 空文字, a , aa , aaaaaaa
(abc)* → 空文字 , abc , abcabc , abcabcabcabcabcabc
(abc|def)* → 空文字 , abc , def , abcabc , defied , abcdef , abcabc , defdef , abcdefabcdef
+ a+  →  直前の文字1文字以上     1 or more → a , aa , aaa , aaaaaa

¥に続くメタ文字

¥n  改行
¥t  タブ
¥d  数字   [0−9]
¥w  英数字_ [AーZa−z0−9_]
¥s  スペース、タブ
¥メタ文字 文字列としてメタ文字を扱いたい時

フラグ(*JSの場合)

 ┗>/パターン/フラグ
 i 大文字小文字区別しない
 g パターンにマッチした値を配列で返す。デフォでは最初にヒットしたものしか返さない。
 m 対象文字列に¥nなどがある場合
   対象文字列ないで行頭、行末を¥nで区切っているとおりに、行頭行末を理解し、
   パターン検索したい場合は、mフラグで幸せになれる。

最小マッチ

var s=’ hoge@hachim.jp,foo@hachim.jp,bar@hachim.jp’
var rs=s.match(/  .+@hachim.jp/);

デフォ:最長マッチ

rsの返り値
[ ” hoge@hachim.jp,foo@hachim.jp,bar@hachim.jp "]

var rs=s.match(/  .+?@hachim.jp/);
rsの返り値            ┗>最小マッチ
[ ”hoge@hachim.jp” ]

()とRegExp

正規表現のパターンの中で()を使うと
あとで取り出せる

その取り出す命令がRegExp

var s=’ hoge@hachim.jp’
var rs=s.match( /  ((.+?)@hachim(.jp))/);

console .  log(RegExp . $1) → hoge@hachim.jp
console .  log(RegExp . $2) → hoge 
console .  log(RegExp . $3) → .jp

タイトルタグの中身抽出

webページの<title>・・・</title>
の・・・部分

var s=’ <title>正規表現とあたし</title> ’
rs=s.match(/  <title>([^<]+)<¥/title>/);

console.log(RegExp.$1);
 ┗>返り値: 正規表現とあたし

日付を日本語表記になおす

2016/05/08

2016年05月08日

var s=’ 2016/05/08 ’;
rs=s.match(/(¥d{4})[ー¥/](¥d{2})[ー¥/](¥d{2})/);

console.  log(RegExp .  $1+’年’ +RegExp .  $2+’月’ +RegExp.  $3+’日’ );

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です