Data Science by R and Python

統計学を、広く、深く、わかりやすく。

正規表現の勉強をしたのでメモ(自分用).

//メタ文字

//[abc] :aかbかcのどれか一文字にマッチさせる
//[]と一緒に使えるメタ文字
//[a-z]:a-zのうちのどれか
//[^abc]:^(キャレット):これの中の文字以外の1文字
	var s = '@tomoshige_n,@temoshige';
	var rs = s.match(/t[^ao]moshige/);
	if(rs){
		alert('マッチしました');
	}
	
// . :任意の一文字
	var s = '@tomoshige_n,@temoshige,@testtest';
	var rs = s.match(/to...hige$/);
	if(rs){
		alert('マッチしました');
	}


// ^ :行頭, 行の一番最初にあるか?
// $ :行末, 行の一番最後にあるか?

//{} :直前の文字の繰り返し回数
//0{2} : 00にマッチする
//0{2,}:2以上の00にマッチ.00,000000など
//0{2,4}:00,000,0000

//[a-z]{5}:小文字5つにマッチする
//[a-z]{3,6}:小文字3~6文字にマッチする


//繰り返しに関するメタ文字
//a? :0文字か1文字の繰り返し, 文字がないか、aか
//a* :0文字以上の繰り返し, 文字がない, a, aaaaa
//a+ :1文字以上の繰り返し, aaaa,aaaaaaaa

//(abc)*, 0文字以上なので、なし、abc, abcabc
//(abc|def), abcもしくはdef


// \n : 改行
// \t : tab
// \d : 数字[0-9]としてもOK
// \w : 英数字と_, [A-Za-z0-9_]
// \s : スペース,タブ
// \メタ文字 : メタ文字


//フラグ,言語によって異なる
// i : 大文字小文字を区別しない, s.match(/to...hige/);でTOMOSHIGEもtomoshigeにもマッチする
// g : すべてのマッチした要素を返す.
// m : 複数行に対応させる  : ^$



// * + のあとの?について(最小マッチ)
// *+?:最初のものだけをマッチさせる

//(), RegExp:マッチしたものの抽出

//	var s = 'tomoshige.nakamura@gmail.com';
//	var rs = s.match(/(.+?)@gmail.com/);
//	console.log(RegExp.$1);

//TwitterIDをマッチさせる
//TwitterIDを引っ掛ける

//var s ="@tomoshige_n";
//var rs = s.match(/@[A-Za-z0-9_]{1,15}/);
//console.log(RegExp.$1);


//タグの中身の抽出
//タイトルタグ

//var s = '<title>ドットインストール</title>';
//var rs = s.match(/<title>([^<]+)<\/title>/);
//console.log(RegExp.$1);


//日付を日本語表記に直す
var s = '2012-03-24';
var rs = s.match(/(\d{4})[-\/](\d{2})[-\/](\d{2})/);
console.log(RegExp.$1+'年'+RegExp.$2+'月'+RegExp.$3+'日')