以下“〜”字符的含义是什么?:
preg_match_all("~<img [^>]+>~", $inputw, $output);
我的猜测是它们是开始和结束标记,例如^和$。
答案 0 :(得分:8)
分隔符可以是任何非字母数字,非反斜杠,非空白字符。
答案 1 :(得分:4)
正如Nambi所说,你可以自由选择正则表达式中的分隔符。但是,如果分隔符出现在模式中,则必须进行转义。了解这一点,想象以下情况
'/\/var\/www\/test/' # delimited with /
'~/var/www/test~' # delimited with ~
最后一个不需要转义/
,因为分隔符现在是~
。很清洁不是吗?
作为一般准则,我们鼓励您选择一个不是模式本身模式的分隔符,我猜~
被广泛分发为/
的替代,因为它很少出现在现实世界模式。
答案 2 :(得分:0)
他们没有告诉你的肮脏的小分隔符秘密 - &gt;
http://uk.php.net/manual/en/regexp.reference.delimiters.php
示例:
成对分隔符( raw:\d{2}Some\{33\}\w{5}
)
{\d{2}Some\\{33\\}\w{5}}
解析为\d{2}Some\\{33\\}\w{5}
和
{\d{2}Some\{33\}\w{5}}
解析为\d{2}Some{33}\w{5}
未配对的分隔符( raw:\d{2}Some\+33\+\w{5}
)
+\d{2}Some\+33\+\w{5}+
解析为\d{2}Some+33+\w{5}
和
+\d{2}Some\\+33\\+\w{5}+
无法解析,因为分隔符是未转义的。