我正在尝试使用preg_match
从字符串中获取动态文本$desc = 'this is some text big <a href="//example.com/dynamicID">//example.com/dynamicID</a><br> and some more text here';
$desiredtext = preg_match("//example.com/.*?", $desiredtext, $desc);
echo $desiredtext; //this should return me only //example.com/dynamicID
如何解决这个问题?
答案 0 :(得分:1)
请尝试以下操作:(已更新!)
if(preg_match("/(?<=href=")([^"]*)/", $desc,$matches)) $desiredtext=$matches[1];
它使用了一个搜索href="
的后视组。然后,捕获组([^"]*)
将抓取任何内容,直至下一个"
。您可以根据自己的要求调整正则表达式。
回复您的评论:
将第一个搜索组()
扩展为包含“example.com”,然后从matches[1]
而不是matches[0]
获取结果:
preg_match('/(example.com[^&]*)/',$desc,$matches);
$part = $matches[1];
echo $part;