我有一个字符串:
$string = "Something here 2014 another text here";
我需要检测以"20"开头的前4位数字的位置。
因此,该示例的结果将是$字符串的第15个字符。
既然你已经用你尝试过的代码发表了评论,我现在很乐意正确回答你的问题:(谢谢你先尝试!
您的尝试:
preg_match('/20'd'd/', "Something here 2014 another text here",
$matches, PREG_OFFSET_CAPTURE);
是绝对正确的,但是正如您正确指出的,它也会匹配20140
(实际上12014
也会匹配(。
要修复这种行为,可以添加单词边界,因为数字算作单词字符。您的正则表达式变为:
'/'b20'd'd'b/'
这将确保在您的目标四位数之前或之后没有数字(或字母(:(
那。。。
$needle = "20";
$pos = strpos($string , $needle);
编辑:根据请求,从这个中获取字符串的方法
$date = substr ($string , $pos , 4 ]);