2017-07-17 126 views
-2

我想創建正則表達式,它將接受字母,特殊字符,數字組合但不只是字母或特殊字符或數字如何創建正則表達式來接受字母,數字和特殊字符的組合,但不是單個字母或數字或特殊字符

例如: 應該接受

  1. 1個切片黑麪包(小麥)
  2. 1湯匙
  3. 1/2杯

但它不應該接受

  1. 片黑麪包
  2. @#%&%& *

這是我曾嘗試:

regex:/^(?![0-9]*$)[a-zA-Z0-9\s\-()\/ ]+$/' 

這個正則表達式允許用戶接受字母,數字和特殊字符的組合,但不僅是數字。

+3

你嘗試過什麼?如果是,請粘貼您的試驗代碼。 –

+0

@NanaPartykar:正則表達式:/ ^(?![0-9] * $)[a-zA-Z0-9 \ s \ - ()\ /] + $ /'這就是我試過的。這正則表達式允許用戶接受字母,數字和特殊字符的組合,但不僅數字 –

回答

2

通過鏈接一些負面的lookahead到正則表達式,所以當同一行只有一個類型+空白時它不匹配。

$str = '1 Slice brown bread (wheat) 
1 Tbsp 
1/2 cup 
Slice brown bread 
1 
@#%&%&*'; 

$re = '/^(?!\W+$)(?![\d\s]+$)(?![A-Za-z\s]+$).+$/m'; 

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); 
var_dump($matches); 

順便說一句,在這些例子中,所有的可接受表格似乎都以數字開頭,並且有字母。
$re = '/^(?=.*[A-Za-z])\d+.+$/m';一樣,要匹配以數字開頭且至少包含一個字母的行,它也只能匹配前3個示例。

+0

謝謝它的作品! –

相關問題