匹配任何字母、space 或特定数字的正则表达式

Regex to match any letter, space or specific number

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

这是我的。

([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

我想你想要:

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

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

您将一系列字符放入一个字符 class。字符 class 用于匹配字符 class 中定义的单个字符,因此,您所做的是行不通的。

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

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

regex demo

详情

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