我有一个字符串:
$string = "Something here 2014 another text here";
我需要检测以“20”开头的前4位数的位置。
因此示例的结果将是$ string的第15个字符。
答案 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 ]);