2017-07-17 55 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

谢谢它的作品! –

相关问题