正则表达式中的#符号php
问题描述:
我在正则表达式中遇到了'#'符号的问题。 我有一个字符串(URL),它包含#符号。我如何用正则表达式检查它是否在这里或不在这里?正则表达式中的#符号php
这是字符串 “293892-MY-PAGE-#92.html” 和正则表达式
RewriteRule ^([0-9]*)-([\#a-z0-9-])*.html$ page.php [L]
使用此我得到了 '293892-MY-PAGE-'
谁能帮助我有了这个?
答
$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
)
答
要检查是否有在URL #
符号。使用/#/
(.*#.*).html
作为您的正则表达式就足够了。对于一些复杂一点 - 所有的URL应该是与此类似 - 293892-my-page-#92.html
,我们可以使用:
([\d]+-[a-z]+-[a-z]+-#[\d]+.)html
现在回到你原来的正则表达式[\#a-z0-9-]
。你并不需要逃避课堂中的任何角色 - 没有必要使用\
。例如[+*]
将搜索星号或点。如果#
是强制性的,我们不能使用字符类。 [#a-z0-9-]+
将匹配从类任何字符重复一次或不限次数:
lorem ipsum
------
不匹配的。你是怎么得到它的? https://regex101.com/r/BK7RK3/1 –
浏览器写我目前的URL'293892-my-page-'找不到 –
你使用什么代码? –