PHP preg_match在检查空格字符时返回false

时间:2018-03-15 14:00:46

标签: php regex

我需要这个正则表达式检查的帮助。我是正则表达的新手,所以请保释我。这就是我想要做的事情:

我正在尝试检查此日期范围是否在其声明中都有月份,例如Feb 10 - Feb 12是正确的,而Feb 10 - 12应该失败。此外,某些日期实例可能在月份和日期之间或-和月份或日期之间没有空格。这是我的代码。

preg_match("/([A-Za-z]{3}\ *?\d{1,2}).*?\g{1}/", "Feb10 -feb 13")

但它仍然失败。

1 个答案:

答案 0 :(得分:0)

根据我在问题下面的原始评论。

See regex in use here

([A-Z]{3} *\d{1,2}) *- *(?1)
  • ([A-Z]{3} *\d{1,2})将以下内容捕获到捕获组1中
    • [A-Z]{3}匹配任何3个大写ASCII字母。添加i标志使我们也可以匹配小写变体
    • *匹配任意数量的空格
    • \d{1,2}匹配一位或两位数字
  • *匹配任意数量的空格
  • -按字面意思匹配
  • *匹配任意数量的空格
  • (?1)递归第一个子模式