全球主机交流论坛

标题: 求一个正则表达 请帮我看看格式对吗 谢谢大家 [打印本页]

作者: 上善若水    时间: 2020-1-7 12:09
标题: 求一个正则表达 请帮我看看格式对吗 谢谢大家
本帖最后由 上善若水 于 2020-1-7 12:11 编辑

/index.php?m=Home&c=agent& 这后面的agent&开始路径会随机变化
用正则表达是不是
/index.php?m=Home&c=agent&*
就是在agent&后面加一个*
作者: 上善若水    时间: 2020-1-7 12:10
这样对吗?? 求解答
作者: 1571742055    时间: 2020-1-7 12:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: Mr.    时间: 2020-1-7 12:14
你要匹配完整的 url 还是只要匹配到 /index.php?m=Home&c=agent& 部分?
如果是要完整的,星号肯定不对,换成 .+  点代表任意字符  加号表示1个字符以上
作者: 风影OvO    时间: 2020-1-7 12:20
  1. [^\s]+
复制代码

用这个试试呢?
作者: 上善若水    时间: 2020-1-7 12:23
Mr. 发表于 2020-1-7 12:14
你要匹配完整的 url 还是只要匹配到 /index.php?m=Home&c=agent& 部分?
如果是要完整的,星号肯定不对,换 ...

是匹配完整的URL
比喻
http://baidu.cn/index.php?m=Home&c=agent& 然后&  以后的连接就是随机变动了
官方的举例是这样 http://baidu.cn/Home/agent/  用/隔开的就是 在/* 这样加一个*号 从加星号开始 后面不管多长 多少变化都能通配

作者: 晴晴晴    时间: 2020-1-7 12:24
        匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
作者: 上善若水    时间: 2020-1-7 12:24
Mr. 发表于 2020-1-7 12:14
你要匹配完整的 url 还是只要匹配到 /index.php?m=Home&c=agent& 部分?
如果是要完整的,星号肯定不对,换 ...

http://baidu.cn/index.php?m=Home&c=agent& ...............  要匹配这个后面随机变动的
作者: 晴晴晴    时间: 2020-1-7 12:25
前面的语法不对 部分语言需要转义处理。自己再琢磨试试把
作者: 上善若水    时间: 2020-1-7 12:26
晴晴晴 发表于 2020-1-7 12:25
前面的语法不对 部分语言需要转义处理。自己再琢磨试试把

访问出来以后的路径就是我发的这样的了
作者: Mr.    时间: 2020-1-7 12:28
上善若水 发表于 2020-1-7 12:24
http://baidu.cn/index.php?m=Home&c=agent& ...............  要匹配这个后面随机变动的

没在电脑前了不好打字,用 (.+) 就能匹配到后面部分,后续使用时用 $1 来获得括号里的内容,找个正则的教程看看分组这一块就知道了
作者: chamhaw    时间: 2020-1-7 13:01
本帖最后由 chamhaw 于 2020-1-7 13:05 编辑
  1. http://baidu\.cn/index\.php\?m=Home&c=agent.*
复制代码


这样就可以了,正则里,点号表示任意字符,网址里面你是要表达点号本身,问号表示后面的有可能有,也有可能没有,所以Url的前半部分的点号和问号需要加反斜线转义
你写的那个agent后面直接加星号,表示agent最后一个字符有0个或n个,相当于
  1. http://baidu.cn/index.php?m=Home&c=agen
复制代码
  1. http://baidu.cn/index.php?m=Home&c=agentttttttt
复制代码
显然不符合需求

所以要用点号+星号,表示agent后面有0个或n个其他字符




欢迎光临 全球主机交流论坛 (https://hostloc.9hanju.com/) Powered by Discuz! X3.4