■2005-07-30
    *   [メモ][Perl] splitに(?=regexp)を渡す
 
 Perlのsplitの第一引数には正規表現を渡しますが、これ、先読み宣言や後読み宣言も渡せるんですね。
 これは最近HTML::Templateのソースを見る必要があって、そこでsplit(/(?=<)/,$self->{template})というのが出てきて初めて知りました。split(/</,$str)だと'<'がデリミタになるので'<'自体は削除されてしまいますが、(?=<)を渡せば'<'は消費されないため、'<'がついたまま分割できるわけです。
my $str = "<aa>bb<cc>dd\n<ee>"; my @array = split(/(?=<)/,$str); # 返るリスト # <aa>bb # <cc>dd # # <ee>
 言われてみれば「なるほど」なのですが、splitに渡すなんて思いもよりませんでした。なんか色々使えそう。 (?=<)(.*?)(?<=>)とか?
[追記] なんかrubyやjavascriptでもできるそうで(jmukp@MM、ma.la@del.icio.us)。それでは、とJava 1.4でやったら、出来ました。
			本日のTrackBacks(全1件)
			[]
		
		今日もDamian ConwayのTutorial. Tutorialの題目と同じタイトルのサイン本と一緒に。...

