« 大塚 やきとり専門 掌(たなごころ) | メイン | 釧路に来てます »

2007年10月12日(金曜日)

PHPの正規表現とバックスラッシュ [ プログラミング ]

WordPress用のTeXプラグイン作成の為のメモ。

PHPにはPerl互換の正規表現があるが、メタ文字、特にバックスラッシュを含むパターンを検索しようとすると、なかなか厄介。既存のmimetexプラグインは [tex]数式[/tex]という記述をする仕様になっているが、これを、テキスト数式の $数式$ および、別組数式の \[数式\] にマッチさせるように拡張することが目的。

試行錯誤の結果、次で上手く行った。まず、$...$にマッチさせるには、 "#\\$(.*?)\\$#" とする。「$」もメタ文字なのでエスケープしないといけないが、「\$」では上手く行かない。次に、\[ ... \] にマッチさせるには、 "#\\\\\[(.*?)\\\\\]#" とすれば良い。どうも、PHPの正規表現に渡されるときに、一回バックスラッシュを剥ぎ取っている模様。だから、「\\$」は正規表現には「\$」と渡され、「$」もメタ文字なので、これはドル記号そのものと認識される、で良いのかな?

\[」のマッチングに関しては複雑怪奇。「[」もメタ文字なのでエスケープしないといけないが、上のダラーから類推すれば「\\[」となるはず。しかし、そうすると、残りのバックスラッシュは3個。何故に3個なのか?4個だと思ったのだが・・・。だって、正規表現に渡すときに「\\\\」が「\\」になり、これはバックスラッシュそのものと認識されるはずだから。うーむ、奇っ怪じゃ。

投稿者 sukarabe : 2007年10月12日 06:51

トラックバック

このエントリーのトラックバックURL:
http://njet.oops.jp/cgi/mt/mt-tb-alt.cgi/1648

このリストは、次のエントリーを参照しています: PHPの正規表現とバックスラッシュ:

» 民家盗撮!本気でオナニーしてる女子高生の動画! from 民家盗撮!本気でオナニーしてる女子高生の動画!
夜の公園でHしちゃってる高校生カップルを盗撮!   彼氏に手マンされて気持ち良さそうなのに、必死に喘ぎ声を我慢してる彼女が... [続きを読む]

トラックバック時刻: 2007年10月24日 17:12

コメント

コメントしてください

comment spam対策のため,名前とメールの入力が必須になっていますが,メールアドレスは公開されません。Web SiteのURLは任意です。Type Key IDをお持ちの方はType Keyをサイン・インしてくださってもいいです。





次回の入力を省くために、名前・URLなどを保存しますか?