2016-06-09 54 views
1

當我想讓preg match停止,當它達到「何」或「<」。我怎樣才能做到這一點?preg_match PHP的各種情況

我試過使用[Ho <],但它不起作用,因爲它做「H」或「o」或「<」。

謝謝。

例子:

if(preg_match('/class="PuntoVentaDireccion">(.*?)[Ho<].*?Ventas\((.*?)\)</is', $info_tienda, $data)){ 
     echo $data[1]; 
     echo $data[2]; 
    } 
+1

不知道你的 「製作預浸比賽_stop_」 的意思。 –

+0

你有沒有一個字符串前後的例子? –

+0

你的正則表達式'[Ho <]'不起作用,因爲一個字符類允許其中的任何字符,例如, 'H','o',**或**'<'。這就是字符類的設計。 http://www.regular-expressions.info/charclass.html – chris85

回答

3

至於我能理解你想使用non capturing group (?:...)alternation a|b

if (preg_match('/class="PuntoVentaDireccion">(.*?)(?:Ho|<).*?Ventas\((.*?)\)</is', $info_tienda, $data)) { 
    echo $data[1]; 
    echo $data[2]; 
} 
+0

完美的工作!我錯過了非捕獲組!非常感謝! – Marchu

+0

@Marchu我很高興能夠幫到你。我將一些有趣的內容聯繫起來,以深入瞭解這些工作。 – andlrc