読者です 読者をやめる 読者になる 読者になる

その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

正規表現で,他の条件にマッチしない文字列を取得したい

Perl

メモ書き程度です.


例えば,

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';

という結果が得られるので,簡単なパーザであれば楽に書ける風味.