dotinstall見てお勉強
http://dotinstall.com/lessons/basic_regexp
概要
- あるパターンで文字列を検索
- 検索した結果を抽出、置き換えなどする
- dotinstallでは,Javascriptで実例を出していくらしいので、この記事でもJavascriptの例とする
文字列を検索してみる(Javascriptでの例)
<script>
var s = '@majihuwa, @taro, @hoge';
var rs = s.match(/majihuwa/);// / /の中に検索したい文字列を書く
if(rs){
console.log('マッチしました');
}
</script>
メタ文字を使う
[ ]
[]カッコの中の任意の一文字を表現できる
[abc] はaまたはbまたはc
[a-z] a,b,c,....zのどれか
[^abc] ^は否定,a,b,c以外という意味
<script>
var s = '@majihuwa, @taro, @hoge';
var rs = s.match(/m[ai]jihuwa/);// majihuwa,mijihuwaにマッチする
if(rs){
console.log('マッチしました');
}
</script>
.
ピリオド 任意の1文字
<script>
var s = '@majihuwa, @taro, @hoge';
var rs = s.match(/m......a/);// mで始まりaで終わる6文字の文字列
if(rs){
console.log('マッチしました');
}
</script>
^
キャレット 行頭を意味する
単体で使うと行頭
[]の中で使うと否定
<script>
var s = '@majihuwa, @taro, @hoge';
var rs = s.match(/^@majihuwa/);// 行頭がmajihuwa文字列
if(rs){
console.log('マッチしました');
}
</script>
$
行末を意味する
<script>
var s = '@majihuwa, @taro, @hoge';
var rs = s.match(/@hoge$/);// 行末が@hogeの文字列を表現
if(rs){
console.log('マッチしました');
}
</script>
{}
直前の文字の繰り返す回数
a{2} 2回繰り返す
例: aa
a{2,} 2回以上を繰り返す
例: aaまたはaaaまたはaaaa
a{2,4} 2回から4回
例: aaまたはaaaまたはaaaa
<script>
var s = 'aaaa';
var rs = s.match(/a{4}/);// aが4文字を表現
if(rs){
console.log('マッチしました');
}
</script>
?
直前の文字の繰り返しが0 or 1文字
直前の文字があるか無いか
a または ''空白
*
直前の文字が0文字以上
空白またはa,aa,aaa,aaaa,aaaaa,...
+
空白にはマッチしない
1文字以上
a,aa,aaa,...
()
文字列の繰り返しの祭に使う
(abc)* だとabc,abcabcを表現できる
|
(abc|def) => abcまたはdefを表現できる
¥
¥n:改行
¥t:タブ
¥d:数字 [0-9]も代用か
¥w:英数字と_(アンダースコア) a[
¥s:スペースとタブ
¥メタ文字 : ¥の後にメタ文字を入れることメタ文字自身を表現できる