正規表現で,他の条件にマッチしない文字列を取得したい
メモ書き程度です.
例えば,
aaafoobbbbarcccfooddd
みたいな文字列があった時に,fooとbarにマッチしない文字列が欲しい時には以下のように書くと良い.
$str =~ m/(.*?)(?:foo|bar)/g;
実行すると以下のような値が得られる.
$VAR1 = 'aaa'; $VAR2 = 'bbb'; $VAR3 = 'ccc';
加えて条件のキャプチャをするようにすれば,つまり
$str =~ m/(.*?)(foo|bar)/g;
と書いてやれば,
$VAR1 = 'aaa'; $VAR2 = 'foo'; $VAR3 = 'bbb'; $VAR4 = 'bar'; $VAR5 = 'ccc'; $VAR6 = 'foo';
という結果が得られるので,簡単なパーザであれば楽に書ける風味.