2014-02-07 66 views
5

什麼是「〜」字指的是在下面?:「〜」字符在PHP正則表達式中表示什麼?

preg_match_all("~<img [^>]+>~", $inputw, $output); 

我的猜測是,他們開始和結束標記,如^和$。

+0

'我猜測他們是開始和結束標記,例如^和$ .'好像你回答了你自己的問題。 –

+4

@ShankarDamodaran,但情況並非如此 - 它們與'^'和'$'沒有任何關係...... – OGHaza

回答

8

它是一個delimiter

甲分隔符可以是任何非字母數字的,非反斜槓,非空白字符。

4

由於Nambi說你可以自由選擇正則表達式中的分隔符。但是,如果分隔符出現在模式中,它必須逃脫。知道了這一點,想象下面的情況

'/\/var\/www\/test/' # delimited with/
'~/var/www/test~' # delimited with ~ 

最後一個不需要逃避/作爲分隔符,現在~。更清潔不是嗎?

作爲一般指導方針,我們鼓勵您選擇不是模式本身的分隔符,我猜~作爲/的替代品被廣泛分發,因爲它很少出現在現實世界模式中。

+0

@ Nambinarayanan的鏈接指出:如果分隔符經常出現在模式中,那麼這是一個很好的想要選擇另一個分隔符以提高可讀性。 ;) – loveNoHate

+0

@dollarvar你知道他們對鏈接的評論 – OGHaza

+0

@OGHaza no ..... – loveNoHate

0

骯髒的小祕密分隔符,他們不告訴你 - >
http://uk.php.net/manual/en/regexp.reference.delimiters.php

例子:

配對分隔符(原料:\d{2}Some\{33\}\w{5}

{\d{2}Some\\{33\\}\w{5}}解析到\d{2}Some\\{33\\}\w{5} and
{\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}
+\d{2}Some\\+33\\+\w{5}+不會解析,因爲分隔符是未逃脫。