正規表現 バックスラッシュ
preg_match() バックスラッシュ
注意: シングルクォートあるいはダブルクォートで囲まれた PHP の 文字列 の中では、
バックスラッシュは特別な意味を表します。 そのため、正規表現 \\ を使用して \ と
マッチさせたい場合は PHP のコード内では "\\\\" あるいは '\\\\' と記述する必要が
あります。
- 以下のように、$strにはバックスラッシュ一つが代入されている。それとマッチするためには2つのバックスラッシュとマッチする必要があるということ
<?php $str = '\\'; $match = '\\\\'; $rs1 = preg_match("/".$match."/", $str, $rs2); p($rs1); p($rs2); function p($o){ print "<pre>"; print_r($o); print "</pre>"; } ?>
<?php $str = '"hoge\\\\\'\"moge"\'uhouho\''; $match = '(?:"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"|\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\')'; $rs1 = preg_match_all("/".$match."/", $str, $rs2); p($str); p($rs1); p($rs2); function p($o){ print "<pre>"; print_r($o); print "</pre>"; } ?>
<?php $str = '\100'; $match = "(\\\\)(\d+)"; $rs1 = preg_match("/".$match."/", $str, $rs2); print "文字列は "; p($str); print"返り値は "; p($rs1); print "結果配列は "; p($rs2); function p($o){ print_r($o); print "<br>"; } ?>
<?php $str = '{$_str}'; $match = "\\{\\$.+\\}"; $rs1 = preg_match("/".$match."/", $str, $rs2); print "文字列は "; p($str); print"返り値は "; p($rs1); print "結果配列は "; p($rs2); function p($o){ print_r($o); print "<br>"; } ?>