2013-09-23 111 views
1

我正在尋找一個數字和字母組合的perl正則表達式,允許空格和「/」和「 - 」字符作爲可能的分隔符。一個數字/字母組合的Perl正則表達式

基本上,我希望它匹配包含的字母和數字和/或分離器的組合,這樣的表達式:

ATG567A
ATG56-7A
ATG56/7A
ATG56 7A

但不是這樣的:

ATG-A < ----字母和/或分離器只
567/7 < ----只包含數字和/或分隔符

+0

'的perldoc perlretut'可能會有所幫助。 – ThisSuitIsBlackNot

+0

'm! ([ -/A-Z0-9] +)!x' –

+4

**嘗試自己寫一些**,然後如果它不起作用,**特別告訴我們你做了什麼**,以便我們可以幫助你。你開始吧,我們幫忙。我們不會爲你寫信。向我們展示您嘗試過的實際代碼,然後我們可以從那裏幫助您。如果你只是先嚐試​​一下,你很可能會接近答案。 –

回答

2

如果您嘗試驗證字符串,則將其作爲多重檢查更簡單。

m{^[A-Za-z0-9 /-]*\z} && /[A-Za-z]/ && /[0-9]/ 

這些可以合併成一個模式,但我建議反對它。

m{^(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9 /-]*\z}s 

在另一方面,如果你想從字符串中提取,則需要以下內容:

m{ 
    [ /-]*+ 
    (?: [A-Za-z] [A-Za-z /-]*+ [0-9] 
    |  [0-9] [0-9 /-]*+ [A-Za-z] 
    ) 
    [A-Za-z0-9 /-]*+ 
}x 
+0

('* +'與'*'相同,除了防止無用的回溯。) – ikegami

相關問題