2016-04-22 67 views
0

我對正則表達式很陌生,我想檢查一個與確切的給定單詞匹配的句子,後跟空格和一個字母數字字符串以數字和長度開頭該字符串應該是8.從下面的表達式我得到1作爲結果並匹配採購訂單。但我沒有得到如何創建規則來匹配採購訂單後跟空格,並啓動一個字符串與首字母數字和長度爲8個字符。任何幫助將不勝感激。創建正則表達式匹配空格,後跟字符串長度8

$header = 'Amazon.fr PO 2YCLN4EM'; 
$k = preg_match("/[PO]*/", $header); 
echo $k; 
+1

僅供參考http://php.net/manual/en/reference.pcre.pattern.syntax.php – Gordon

回答

2
$header = 'Amazon.fr PO 2YCLN4EM'; 

if (preg_match('/PO\ \d\w{7}/', $header, $matches)) { 
    print_r($matches); 
} 

注意該功能只返回你是否有一個匹配與否。第三個參數包含匹配項。

+1

'\ w'會匹配數字和字母。所以沒有必要把'\ d \ w' – mkHun

+0

其實,你是對的!我以\ dA-Z模式開始,然後將A-Z更改爲\ w。我編輯了答案。 – BeS

+1

小改進:OP希望'匹配確切的給定單詞後跟空格...',確切的給定_word_是'PO'。因此,爲了排除單詞後綴'PO',請在正則表達式中添加一個開始定位點/非單詞字符匹配:'/(^ | \ W)PO \ \ d \ w {7} /'。 – collapsar

2

嘗試如下

使用\dLimiting Repetation用於精確匹配7倍。 DEMO

/PO\s\d\w{7}/ 
+0

nitpick:\ s表示任何空格字符,不一定只是空格。 – Gordon

相關問題