LoginSignup
5
6

More than 5 years have passed since last update.

正規表現始める

Last updated at Posted at 2016-01-24

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:スペースとタブ
¥メタ文字 : ¥の後にメタ文字を入れることメタ文字自身を表現できる

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6