正则表达式用作grep,而不是preg_match

时间:2013-09-16 14:08:26

标签: php regex grep

我在Text Wrangler中使用grep进行测试时编译了一个完全匹配多个日期格式的正则表达式(基于其他帖子),但是当我将它放入PHP并与preg_match一起使用时,它与任何内容都不匹配。

这是正则表达式:

/^(((?:0?[1-9]|1[012])|(?:0?[1-9]|[12][0-9]|3[01])|([a-zA-Z]+))([.]?[-.\\/\s]))?(((?:0?[1-9]|1[012])|(?:0?[1-9]|[12][0-9]|3[01]))([,]?[-.\\/\s]))?((?:20|19)[0-9]{2})$/

它应匹配(并且在Text Wrangler中):

03/12/2000
4 4 2011
16 04 1985
11/11/1911
04.13.2013
May 12, 1912
July 13 2012
March 1999
2015
1944

不匹配:

2000 12 4
11/11/1111
40.13.2013

对于preg_match与grep

,我是否遗漏了应该以不同方式进行转义或格式化的内容

2 个答案:

答案 0 :(得分:1)

你需要使用“s”标志使其'dotall'匹配(包括换行符)

preg_match('#THE_REGEX_PATTERN#is',$myStr,$matches);

答案 1 :(得分:0)

它正在研究正则表达式测试工具。

尝试

http://toolspot.org/regex_tester.php