我有这个数组:
array
0 => string 'http://example.com/site.xml'
1 => string 'http://example.com/my_custom_links_part1.xml'
2 => string 'http://example.com/my_custom_links_part2.xml'
3 => string 'http://example.com/my_custom_links_part3.xml'
4 => string 'http://example.com/my_some_other_custom_links_part1.xml'
和此代码获取名称中包含“my_custom_links”的链接(但不是“my_come_other_custom_links”)
<?php
$matches = array_filter($urls, function($var) { return preg_match("/^my_custom_links$/", $var); });
echo "<pre>";
print_r($urls); // will output all links
echo "</pre>";
echo "<pre>";
print_r($matches); // will output an empty array
echo "</pre>";
?>
我应该得到一个包含3个项目的数组,但我得到一个空数组。
答案 0 :(得分:1)
你的正则表达式错了。
preg_match("/^my_custom_links$/"
仅匹配my_custom_links
的字符串。将其更改为
preg_match("/my_custom_links/"
答案 1 :(得分:1)
试试这个:
email,contact no
答案 2 :(得分:1)
您的正则表达式不正确,因为它检查^(starts)
和$(ends)
仅my_custom_links
^my_custom_links$
应该只是
\bmy_custom_links
答案 3 :(得分:1)
你的代码很好,唯一不对的是你的正则表达式。
它不起作用的原因是因为你在开头有^
这意味着匹配它开头的指定值然后你有$
这意味着匹配那个字符串在指定的字符串值的末尾。
改为使用
preg_match("/my_custom_links/" .. rest of the code