2011-11-07 36 views
0

我試圖解析一個網頁。 基本上它被存儲在一個字符串,它看起來就像這樣:PHP正則表達式:忽略定義的子串之前的所有內容

"[HTML CODE ...]world:[HTML CODE ...]my_number[REST OF HTML_CODE ...]" 

當然,「世界」和「MY_NUMBER」是HTML代碼的一部分,不過,我想第一次出現之前,不顧一切「世界:」。我需要的是在第一次出現「world:」之後出現的第一個數字,牢記一堆html代碼會介於這兩個數字之間。 我可以子字符串的HTML代碼,但我想這樣做只是通過使用一個正則表達式,如果可能的話。

這是正則表達式我試圖匹配:

'/(?<=world:)\D+?[0-9]+/' 

但這返回我的「世界」之間的所有HTML的東西,我的電話號碼。

謝謝!

+0

您可以刪除之前的一切,包括「世界」,然後找到剩下的字符串中的第一個號碼。 – Thai

+0

正如我寫的,我可以將html代碼子字符串,但我只想在可能的情況下僅使用正則表達式來完成此操作。沒有特別的原因,我只是想提高我的正則表達式知識 – user586883

回答

0

我覺得你已經接近了。我可以在你提供的字符串上使用它。

$subject = "[HTML CODE ...]world:[HTML CODE ...]3334[REST OF HTML_CODE ...]"; 
$pattern = "/world:\D+?(?<my_number>[0-9]+)/"; 
$matches = array(); 

$result = preg_match_all($pattern, $subject, &$matches); 

print_r($matches); 

結果:

Array 
(
    [0] => Array 
     (
      [0] => world:[HTML CODE ...]3334 
     ) 

    [my_number] => Array 
     (
      [0] => 3334 
     ) 

    [1] => Array 
     (
      [0] => 3334 
     ) 

) 
+0

我得到了和我一樣的結果,它與我提供的字符串很好地工作,它不會與html頁面一起工作,並且這會返回「world:」部分,我不想要 – user586883

+0

我已經編輯它以返回一個名爲'my_number'的鍵,以便查找值。 – hafichuk

+0

這個工程!萬分感謝! – user586883

相關問題