2015-05-26 18 views
0

我正在尋找通過正則表達式捕獲匹配組,但我想省略匹配之間的內容。PHP中的正則表達式組之間省略文本

樣品字符串:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'name_lastt' in 'field list' 

我想匹配和name_lastt(帶或不帶單引號)

我的正則表達式匹配如下:

$pattern = '/(1054)(?:.*(\'\w*\'))/'; 

我非常接近,但我也在數組索引0處看到一個奇怪的意外匹配,如圖所示b elow:

Array 
(
    [0] => 1054 Unknown column 'name_lastt' 
    [1] => 1054 
    [2] => 'name_lastt' 
) 

我在做什麼錯?

+1

'[0]'是整個文本match.' [1]'和'[2]'是捕獲的基團。 – vks

回答

0

使用下面的正則表達式只得到您所期望的輸出。

1054(?=.*(?:\'\w*\'))|(?<=1054)(?:.*\K(?:\'\w*\')) 

DEMO

相關問題