正则表达式匹配任何字母,空格或特定数字

时间:2017-08-29 17:21:19

标签: php regex preg-match pcre

我正在尝试创建一个匹配所有字母或空格或特定数字的正则表达式。

这就是我所拥有的。

([a-zA-Z\s24]*)
 #but this is matching a 2 or a 4, i need exactly 24 only

ex:
- asdfafasf asfasdf  #should match asdfafasf asfasdf
- asdf asdf asdf 24  #should match asdf asdf asdf 24
- asdf24asdfasdf as  #should match asdf24asdfasdf as
- asdfadf2 asdf      #should match asdfadf
- asdfasdf kljl 6    #should match asdfasdf kljl 

https://regex101.com/r/iNWuRb/1

2 个答案:

答案 0 :(得分:1)

您将一系列字符放入字符类中。字符类用于匹配字符类中定义的单个字符,因此,您所做的不起作用。

您需要使用分组构造,交替组和acc。对于预期的匹配,您只需要在字符串的开头匹配:

^(?:24|[a-zA-Z\s])+

请参阅regex demo

<强>详情

  • ^ - 字符串开头
  • (?:24|[a-zA-Z\s])+ - 一次或多次出现:
    • 24 - 子字符串24
    • | - 或
    • [a-zA-Z\s] - ASCII字母或空格

答案 1 :(得分:0)

我想你想要:

([a-zA-Z\s]*|24)

然后你得到你的A-Z \ s组或24号。

相关问题