(? カッコハテナから始まるboost正規表現
(? カッコハテナから始まるboost正規表現で超混乱したのでメモしておきましょう。railsとはあんまり関係ないけど。
http://www.boost.org/libs/regex/doc/syntax_perl.html
(a)bc
abcにマッチ。aを$1に入れる
(?:a)bc
abcにマッチ。ただ、aを$1には入れない
(?=a)abc
abcにマッチ。aにマッチしたら、(?=a)を消したabcでもう一回マッチングを試みる。$1には何も入らない
(?=a)bc
永遠にマッチしない。aにマッチしたら、(?=a)を消したbcでもう一回マッチングを試みてマッチするような文字はあり得ないから
(?!a)bc
bcにマッチ。a以外の文字にマッチしたら、(?!a)を消したbcでもう一回マッチングを試みる。$1には何も入らない
【広告】
http://www.boost.org/libs/regex/doc/syntax_perl.html
(a)bc
abcにマッチ。aを$1に入れる
(?:a)bc
abcにマッチ。ただ、aを$1には入れない
(?=a)abc
abcにマッチ。aにマッチしたら、(?=a)を消したabcでもう一回マッチングを試みる。$1には何も入らない
(?=a)bc
永遠にマッチしない。aにマッチしたら、(?=a)を消したbcでもう一回マッチングを試みてマッチするような文字はあり得ないから
(?!a)bc
bcにマッチ。a以外の文字にマッチしたら、(?!a)を消したbcでもう一回マッチングを試みる。$1には何も入らない
【広告】