2012-06-27 48 views
0

前段時間,我做了一個preg_match代碼,檢查牌照。PHP preg_match一對數字或字母

return preg_match("/^([0-9A-Za-z])"."([0-9A-Za-z])"."(\-([0-9A-Za-z])"."([0-9A-Za-z]))"."(\-([0-9A-Za-z])"."([0-9A-Za-z]))$/", $kenteken); 

它檢查這樣的板塊:u0-99-e5所以數字或字母,-,然後再是相同的。
現在這不是根據我的老師的解決方案。它必須檢查數字或字母的一對。例如99-oo-ii

如何更改代碼以便檢查這些代碼?

在此先感謝!

+2

心不是這個所謂的欺騙? – craig1231

+0

不,他說你可以從論壇等獲得幫助;) –

+1

請注意,通過使用/ i大小寫不敏感標誌,您可以使您的模式更短,更易於閱讀。例如,可以使用'/ [0-9a-z]/i'來代替'/ [0-9A-Za-z] /'。 –

回答

1

要匹配您已捕獲的內容,請使用反向引用。反向引用是\1,\2,\3等,其中數字是您正在引用的捕獲子模式的位置。

例如,/^([0-9A-Za-z])\1/將匹配任何數字或字母,後跟相同的數字或字母。

+0

我沒有在代碼中實現它,你可以舉個例子嗎? –

0

你並不需要連接你的字符串,

return preg_match("/([0-9A-Za-z])\1-([0-9A-Za-z])\2-([0-9A-Za-z])\3/", $kenteken); 
+0

我沒有得到這個工作(還) –

+0

也許你不需要「和/?我測試它使用http://www.spaweditor.com/scripts/regex/ – SpacedMonkey

相關問題