我应该使用什么REGEX从url字符串中提取以下参数:
/?c=135&a=1341
我基本上想从此字符串中获取a
参数的值。
谢谢,
答案 0 :(得分:1)
如果要提取a的值,并且该值由一位到多位数组成,则此正则表达式应该有效:
preg_match("/a=(\\d{1,})/ui", $_SERVER['REQUEST_URI'], $matches)
然后使用$matches[1]
显示a
值
答案 1 :(得分:1)
我将回答一个稍微更一般的Q,这是你的建议吗?您尝试从URI请求字符串中删除特定参数的前缀(这会丢弃前导?)。在这种情况下,使用mod_rewrite引擎,以便您可以在.htaccess文件中实现它。
规则稍微复杂一些,因为你不一定知道查询参数a = XXX中的位置,所以你需要不同的正则表达式,其中a是第一个,a是后续参数。你可以通过((?=a=)regexp1|regexp2)
执行此操作,所以这里是:
RewriteEngine on
RewriteBase \
RewriteCond %{QUERY_STRING} ^(?(?=a=)a=[^&]*&?(.*)|(.*)&a=[^&]*(&.*)?)
RewriteRule ^.* $0?%1%2%3 [L]
如果a是第一个%1包含休息,否则%2和%3是书挡(%3可能是空白的)。
如果您希望特定脚本出现这种情况,请将规则regexp ^.*
替换为更具体的脚本。
享受:-)