真 もわ爛漫

しゃーら、しゃーらしゃーら

正規表現の否定後読みアサーション

たとえばMapReduce(は公開されているのでよいだろう)のタスク名には"mapper"と入っていてそれを一覧から抽出したい、でも末尾に"test"と付いているのははじきたい、とする。これを一つの正規表現で実現したい。どうするか

Pythonだとこんな感じになるんだろうか

m = re.match("^.*mapper.*(?<!test)$", s)

1:この否定後読みアサーション(negative lookbehind assertion)の使い方は正しいのか
2:これを使わずに同様のことをひとつの正規表現で実現可能か

うーん。