什么是~&引用;PHP正则表达式中的字符表示法?
下面的“~”字符是什么意思什么是~&引用;PHP正则表达式中的字符表示法?,php,regex,preg-match-all,Php,Regex,Preg Match All,下面的“~”字符是什么意思 preg_match_all("~<img [^>]+>~", $inputw, $output); preg\u match\u all(“~]+>”,$inputw,$output); 我的猜测是它们是开始和结束标记,如^和$ 这是一个 分隔符可以是任何非字母数字、非反斜杠、非空白字符 正如Nambi所说,您可以自由选择正则表达式中的分隔符。但是,如果分隔符出现在模式中,则必须对其进行转义。知道了这一点,想象一下下面的情况 '/\/var\/
preg_match_all("~<img [^>]+>~", $inputw, $output);
preg\u match\u all(“~]+>”,$inputw,$output);
我的猜测是它们是开始和结束标记,如^和$ 这是一个
分隔符可以是任何非字母数字、非反斜杠、非空白字符 正如Nambi所说,您可以自由选择正则表达式中的分隔符。但是,如果分隔符出现在模式中,则必须对其进行转义。知道了这一点,想象一下下面的情况
'/\/var\/www\/test/' # delimited with /
'~/var/www/test~' # delimited with ~
最后一个不需要转义/
,因为分隔符现在是~
。干净多了,不是吗
一般来说,我们鼓励您选择一个不是模式本身模式的分隔符,我想
~
作为/
的替代品被广泛分发,因为它很少出现在现实世界的模式中。他们没有告诉您的肮脏的小分隔符秘密->示例: 成对分隔符(原始:
\d{2}一些\{33\}\w{5}
)
{\d{2}一些\\{33\\}\w{5}
解析为\d{2}一些\\{33\\}\w{5}
和{\d{2}Some\{33\}\w{5}
解析为\d{2}Some{33}\w{5}
未配对的分隔符(原始:\d{2}一些\+33\+\w{5}
)
+\d{2}Some\+33\+\w{5}+
解析为\d{2}Some+33+\w{5}
和+\d{2}一些\\+33\\+\w{5}+
无法解析,因为分隔符未转义。我猜它们是开始和结束标记,如^和$。
似乎是您回答了自己的问题。@ShankarDamodaran,但事实并非如此——它们与^
和$
无关。@Nambinarayanan的链接指出:如果分隔符经常出现在模式中,最好选择另一个分隔符以增加可读性@你知道他们说什么吗links@dollarvar最好在这里包含答案的基本部分。我想你是在暗示这个答案是多余的,因为提供的链接已经说明了这一点,但我很可能弄错了。@dollarvar我和OGHaza在一起(否则我不会给出答案)。我觉得在这里多说一两句是可以的。@OGHaza啊,不,我不得不从你的评论中去掉两件事:a)我可能感到困惑,但你是否认为,另一个回答者没有包括足够的内容?b) 不,我只是给出了链接的内容,因为它符合并很好地支持了答案,但是他又添加了更多内容,然后似乎是多余的,哈哈,我应该删除评论吗?