HSP の文字列リテラルを表す正規表現

文字列リテラル
/"[^\\"]*(\\.[^\\"]*)*("|$)/
複数行文字列リテラル
/\{"[^\\"]*(("(?!\})|\\.)[^\\"]*)*"\}/m
文字コードリテラル
/'[^\\']*(\\.[^\\']*)*('|$)/

少し前は文字列リテラルを表す正規表現ってどう書けばいいのかぜんぜん分からなかったんだけれど、今だとぜんぜん普通に書けた。

ところで、文字列リテラル中にダブルクォートが3つ以上入る場合、複数行文字列リテラルを使った方がスクリプトの文字数が短くなる。

mes "\""
mes {"""}

mes "\"\""
mes {""""}

mes "\"\"\""
mes {"""""}

というわけで、たとえ 1 行でもダブルクォートのたくさん入った文字列を使う場合は複数行文字列リテラルを使おう。

文字列リテラル 正規表現でググってみました。

そっか。もう少し短くかけたね。

文字列リテラル
/"([^\\"]|\\.)*("|$)/
複数行文字列リテラル
/\{"([^\\"]|\\.|"(?!\}))*"\}/m
文字コードリテラル
/'([^\\']|\\.)*('|$)/

複数行文字列リテラルは /\{"([^\\"]|\\.|")*?"\}/m でもいいか。

インフォメーション

公開日時
2008年2月1日 午前6時11分9秒
最終更新日時
2008年2月1日 午前7時59分48秒
カテゴリ
未分類