2015-02-06 454 views
0

我使用下面的file_get_contents獲得了一些結果。正則表達式以數字開頭並以特定字符串結尾的記錄

30049988.html" >Title1 
297816.html" >Title2 
2979922.html" >Title3 
29736.html" >Title4 
22833.html" >Title5 

我想刪除醜陋的部分(number.html」>),並只獲得標題,我怎麼能實現呢?

+0

您正在處理的是HTML嗎? – 2015-02-06 04:10:49

+0

我正在嘗試在我最後一個問題中處理HTML,但放棄了,找到了使用strip_tags()返回結果的另一種方式() – salep 2015-02-06 04:39:34

回答

1

你可以使用preg_replace功能。

preg_replace('~.*?>~', '', $string); 

DEMO

.*?會做的零個或多個字符的非貪婪匹配。

OR

preg_replace('~^\d+\.html" >~', '', $string); 
+0

謝謝!第一個解決了我的問題。 – salep 2015-02-06 04:09:14

+0

是的,這很簡單... – 2015-02-06 04:09:47

1

preg_replace函數方法將工作,但回答其他任何人知道了原來的問題。

<?php 
$string = <<<EOF 
30049988.html" >Title1 
297816.html" >Title2 
2979922.html" >Title3 
29736.html" >Title4 
22833.html" >Title5 
EOF; 
preg_match_all('~[^>]+>([^\\n]+)$~smU', $string, $matches); 
if (!isset($matches[1])) { 
    echo 'No results found ..'. PHP_EOL; 
    exit; 
} 

foreach ($matches[1] as $match) { 
    echo $match.PHP_EOL; 
} 
1

你試試這個正則表達式。

(?=T)(\w+) 

這是如何工作的

  1. (?=T) - 這是一個積極的前瞻。它檢查模式是否以T開始,然後纔會繼續下一步。
  2. (\w+) - 這組字來自於T

輸出:

Title1 
Title2 
Title3 
Title4 
Title5 

Here is the regex in action

相關問題