正则表达式,其值必须包含字母,空格和数字

时间:2014-08-22 09:50:30

标签: regex oracle11g

如何获取正则表达式来定义值是否包含字母,空格和数字。

注意:该值必须包含字母,数字和空格。

例如

Maalderijstraat 45            Valid
Tronestraat                   Not Valid
Tronesttart45                 Not Valid
123456                        Not Valid

我'使用此查询:

select a.street
from clients a 
where REGEXP_LIKE (a.street,'^[a-zA-Z0-9]*$')

2 个答案:

答案 0 :(得分:1)

你的正则表达式并不包含任何空格,如果你把它们全部放在同一个"类" ([]之间的事情)然后只有1个匹配,所以如果每个字符都匹配a-z,那么即使它没有数字也匹配。

我再次怀疑你需要正则表达式:

select a.street
from clients a 
where a.street like '[A-Za-z]% %[0-9]'

但我想你可以:

select a.street
from clients a 
where REGEXP_LIKE (a.street,'^[a-zA-Z ]+ [0-9]+$')

答案 1 :(得分:1)

  (?=.*?[ ].*?)(?=.*?[a-zA-Z]+.*?)(?=.*?[0-9]+.*?)(.*)

看看演示。

http://regex101.com/r/nW8dX7/2