正则表达式php中的#符号

时间:2016-12-07 13:52:58

标签: php regex

我在正则表达式中遇到'#'符号问题。 我有一个字符串(URL),它包含#符号。我怎么能用正则表达式检查它是否在这里?

这是字符串“293892-my-page-#92.html”和正则表达式

RewriteRule ^([0-9]*)-([\#a-z0-9-])*.html$ page.php [L]

使用这个我得到'293892-my-page - '

任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:0)

$content = '<a href="http://exaple.com/293892-my-page-#92.html"></a>';

preg_match("|/([0-9+].+?)\.html|si", $content, $matches);

print_r($matches);

结果:

Array
(
    [0] => /293892-my-page-#92.html
    [1] => 293892-my-page-#92
)

答案 1 :(得分:0)

检查网址中是否有#个符号。使用/#/ (.*#.*).html作为正则表达式就足够了。对于更复杂的东西 - 所有网址都应与此类似 - 293892-my-page-#92.html,我们可以使用:

([\d]+-[a-z]+-[a-z]+-#[\d]+.)html

Explanation

现在回到原始正则表达式[\#a-z0-9-]。你真的不需要逃避课堂上的任何角色 - 没有必要使用\。例如,[+*]将搜索星号或点。如果#是强制性的,我们就不能使用字符类。 [#a-z0-9-]+将匹配来自班级的任何角色重复一次或无限次:

lorem ipsum
012345
------

Explanation