使用正则表达式获取指定的元素 - PHP

时间:2015-01-22 11:31:10

标签: php regex .htaccess preg-match

我正在尝试使用.htaccessregex文件中获取网页名称,这是以下行:

RewriteRule ^test.html$                                     /public/index.php?test=$1

我正试图重温test.html。这是我到目前为止所尝试的并且不太有效:

preg_match('/\b\^[\w%+\/-]+?\$\b/', $input, $matches);

对此有何帮助?在正则表达式方面我很挣扎!非常感谢。

1 个答案:

答案 0 :(得分:1)

您需要从原始正则表达式中删除\b(在单词字符和非单词字符之间匹配)。因为space^符号之间不存在单词边界。此外,您还需要在char类中包含点。

preg_match('~\^([\w%+\/.-]+?)\$~', $input, $matches);

使用上面的正则表达式,然后从组索引1中获取所需的字符串。

DEMO

OR

使用lookarounds。

preg_match('~(?<=\^)[\w%+\/.-]+?(?=\$)~', $input, $matches);

DEMO