简单正则表达式PHP

简单正则表达式PHP,php,regex,Php,Regex,因为我在regex完全没用,这已经困扰了我半个小时了,我想我会把它贴在这里,因为它可能很简单 <a href="/folder/files/hey/">hey.exe</a> <a href="/folder/files/hey2/">hey2.dll</a> <a href="/folder/files/pomp/">pomp.jpg</a> 我发现这很有帮助。这里有一个非常简单的例子: <a.*>(.*)&

因为我在regex完全没用,这已经困扰了我半个小时了,我想我会把它贴在这里,因为它可能很简单

<a href="/folder/files/hey/">hey.exe</a>
<a href="/folder/files/hey2/">hey2.dll</a>
<a href="/folder/files/pomp/">pomp.jpg</a>

我发现这很有帮助。

这里有一个非常简单的例子:

<a.*>(.*)</a>

在这种情况下,正确的正则表达式是:

<a.*?>(.*?)</a>
'/<a[^>]+>([^<]+)<\/a>/i'
(*)
注意“*”量词后面的“?”。默认情况下,量词是贪婪的,这意味着它们会吃掉尽可能多的字符(这意味着在本例中它们只返回“hey2.dll”)。通过添加引号,您可以使它们不冻结,这应该更适合您的需要。

这似乎有效:

$pattern = '/<a.*?>(.*?)<\/a>/';
$pattern='/(.*)/;

避免使用“.*”,即使您将其设为非reedy,直到您对正则表达式有了更多的练习。我认为一个很好的解决方案是:

<a.*?>(.*?)</a>
'/<a[^>]+>([^<]+)<\/a>/i'

'/]+>([^更好:(Flash实现,交互式和所有)ICG测试仪基于.NET,RegExr是ActionScript,Rubular是Ruby。鉴于OP使用的是PHP,推荐基于PHP的测试仪可能会更有帮助。+1用于推荐(.*)而不是使用独占字符类。
preg_match_all($pattern, $string, $matches);
// matches get stored in '$matches' variable as an array
// matches in between the <a></a> tags will be in $matches[1]
print_r($matches);