柔軟性の高い正規表現を書こうとすると、避けて通れないのが先読み・後読みです。 先読み・後読みに関して、いままではとりあえず的な理解をしていたのですが、それだと説明できない正規表現に遭遇したので、説明できるまで理解を深めてみました。 とりあえず的な理解 正規表現を使って間もない人が先読み・後読みを理解するための説明です。 肯定的先読み (?=pattern) 次の正規表現では直後に def がある abc(def は含まない)に一致します。
かつてJR横浜線 十日市場駅近くのMebius (CPU:Pentium 150MHz)より発信していたウェブログです。 正規表現で、特定の文字列を含まないパターンを記述するのは難しい。 その文字列の文字数が少なければ、例えば"ABC"を含まないとするなら ([^A]|A[^B]|AB[^C])*という方法がありそうで、筆者は時々やってしまうのだが、これは正しくない。"AABC"があると"AA"がA[^B]にマッチ、"ABABC"があると"ABA"がAB[^C]にマッチしてスルーしてしまうし、"A"や"AB"で終わるとマッチしないからである。 この方向で進めると、一例としては、([^A]|A(B?A)*([^AB]|B[^AC]))*(A(B?A)*B?)?という式になるそうだが(大崎 博基さんの「Perl正規表現雑技」より)、これは少なくとも筆者には読めない。 特定の文字を含まない、とい
こんばんは!今日はPHPのisset()と!is_null()(is_null()を反転したもの)に同じ値を与えたとき*1、返されるbool値は常に等しいかどうかという小さいお話です。小さい話なのに長くなってしまいましたが…。物分かりが悪く、物忘れが激しく、読解力がない、そんな自分に説明するとなればこれでもかというくらい丁寧に書くしかないですよね。はい。ありがとう。面目ねぇ。そんな感じでやっていきたいと思いますが、まずisset()とis_null()の返す値と条件についておさらいしましょう。 isset() ([http //www.php.net/manual/ja/function.isset.php:title]):変数がセットされており、それが NULL でないならTRUEを返す is_null() ([http //www.php.net/manual/ja/function.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く