Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用正则表达式从文本中获取日期_Php_Regex - Fatal编程技术网

Php 如何使用正则表达式从文本中获取日期

Php 如何使用正则表达式从文本中获取日期,php,regex,Php,Regex,我有2012年11月13日至2012年11月13日rxd7865的文本摘要 我只想从上面的文本中获取日期字符串,如2012年11月13日 如何在PHP中使用正则表达式来实现这一点?正则表达式: preg_match('/(?<the_date>(January|February|March) [0-9]{2}, 20[0-9]{2})/', $string, $matches); echo $matches[the_date]; preg_match('/(?(一月|二月|三月)[

我有2012年11月13日至2012年11月13日rxd7865的文本
摘要

我只想从上面的文本中获取日期字符串,如2012年11月13日

如何在PHP中使用正则表达式来实现这一点?

正则表达式:

preg_match('/(?<the_date>(January|February|March) [0-9]{2}, 20[0-9]{2})/', $string, $matches);
echo $matches[the_date];
preg_match('/(?(一月|二月|三月)[0-9]{2},20[0-9]{2})/',$string,$matches);
echo$匹配[日期];
解释如下:

() // are called capture groups or matches
(?<name>) // are named capture groups or named matches
| // separator between a list of alternative matches
[] // is a character class
[0-9] // is a character class that allows only characters from 0 to 9
{} // is a repetition specifier
[]{2} // allows the character class to repeat twice
()//称为捕获组或匹配项
(?)//是命名捕获组还是命名匹配
|//可选匹配列表之间的分隔符
[]//是一个字符类
[0-9]//是一个字符类,它只允许从0到9的字符
{}//是一个重复说明符
[]{2}//允许字符类重复两次

使用,它使用

你试过什么吗?我相信用谷歌搜索如何在PHP中使用正则表达式很容易。。。您对正则表达式的某些特定部分有困难吗?日期格式有多固定?请尝试下面的链接。。。它会帮助你。。。我认为这不是OP希望得到的答案……:)@TimPietzcker那么这个问题应该用更具体的措辞;)@fab,这是一个非常具体的问题。懒惰但具体。只是它不起作用。您忘记了正则表达式分隔符和
to…
部分(OP当然可以自己理解)。正则表达式分隔符的用法很好。剩下的事情是OP必须自己解决的。我也没有包括所有12个月,例如。谢谢你的所有讨论和以上正则表达式是为我工作。