2013-07-19 102 views
0

我有一個preg匹配工作來查找單詞標題或貸款的所有實例,但任何人都可以幫助我修改此單詞以獲取單詞的所有實例,以及所有前後單詞,與。成爲停止的分隔符。Preg匹配單詞和期間前後

preg_match_all('#\b(title|loan)\b#',$html, $matches); 

要麼,或者說前10個字,後字即時尋找10個字。

謝謝

回答

1
preg_match_all('#(?<pre>\w+) (title|loan) (?<post>\w+)#',$html, $matches); 

將捕獲單詞和title|loan後,如果他們用空格分開之前。如果你需要在你的單詞之間有更靈活的界限,那麼很容易調整。

然後,您可以通過訪問比賽:

foreach ($matches as $match) 
{ 
    echo $match['pre']; 
    echo $match['post']; 
} 

要匹配期間包含title|loan(句子)之間的一切,你可以這樣做:

preg_match_all('#[^.]*(title|loan)[^.]*#', $html, $matches); 

這將匹配的是所有字符而不是在title|loan之前和之後的期間。

+0

這確實有效,你將如何修改這個去2個字母出,3個字母出來,等.... – user1789437

+0

2個字母從什麼?從貸款? –

+0

也許你可以幫忙,我要找的是找到一個單詞的正確代碼,然後抓住整個句子。所以它找到這個單詞,然後抓住所有單詞到左邊和右邊,停在這個時期。 – user1789437