以" 20"开头的4位数字串的位置

时间:2015-01-20 10:22:34

标签: php

我有一个字符串:

$string = "Something here 2014 another text here";

我需要检测以“20”开头的前4位数的位置。

因此示例的结果将是$ string的第15个字符。

2 个答案:

答案 0 :(得分:2)

由于您已经对您尝试的代码进行了评论,我现在很乐意正确回答您的问题:)感谢您先试用!

您的尝试:

preg_match('/20\d\d/', "Something here 2014 another text here",
     $matches, PREG_OFFSET_CAPTURE);

...绝对正确,但正如您正确指出的那样,它也会匹配20140(实际上12014也会匹配)。

要解决此问题,您可以添加字边界 - 因为数字会计为字符。你的正则表达式成为:

'/\b20\d\d\b/'

这将确保在目标四位数字之前或之后没有数字(或字母):)

答案 1 :(得分:1)

怎么样......

$needle = "20";
$pos = strpos($string , $needle);

编辑: 根据要求,从这个

获取字符串的方法
$date = substr ($string , $pos , 4 ]);