Technical Knowledge
正規表現
[開発]
先読み。
肯定先読み
my $str = "abcdabce"; $str =~ s/ab(?=ce)/X/g; # abcdXce
'ce' が続く 'ab' に一致する。また、'ce' 部分は処理済みとならない。
否定先読み
my $str = "abcdabce"; $str =~ s/ab(?!ce)/X/g; # Xcdabce
'ce' が続かない 'ab' に一致する。
後読み。
肯定後読み
my $str = "ceabcdab"; $str =~ s/(?<=ce)ab/X/g; # ceXcdab
'ce' に続く 'ab' に一致する。また、'ce' 部分は処理済みとならない。
否定後読み
my $str = "ceabcdab"; my $str =~ s/(?<!ce)ab/X/g; # ceabcdX
'ce' に続かない 'ab' に一致する。
最長・最短一致。
最長一致(デフォルト)
my $str = "abbbb"; $str =~ s/ab+/X/g; # X my $str2 = "abbbb"; $str2 =~ s/ab*/X/g; # X
もっとも長くなるパターンに一致する。
最短一致
my $str = "abbbb"; $str =~ s/ab+?/X/g; # Xbbb my $str2 = "abbbb"; $str2 =~ s/ab*?/X/g; # Xbbbb
もっとも短くなるパターンに一致する。