其他教程

其他教程

Products

当前位置:首页 > 其他教程 >

求正则表达式,取标签之内的内同

GG网络技术分享 2025-03-18 16:15 1


问题描述:

谢谢各位热心解答,上面的标签没显示出来,将尖括号改为小括号示例应该是这样的:
stockpick/cache?token=(upara)urlpara(upara)&p=(upara)add(upara)&perpage=70&showType=
使用正则表达式取出两个标签(upara) (upara)之间的文字,应取出urlpara与add两个字符串,结果应为一个字符串数组,
求正则表达式写法,最好用软件或在线工具测试过。

网友观点:

(\\w+)(?=&):这个正则是取出中间的路径参数数值(排除最后一个参数的数值)
如果不想要参数值是数字的,就用如下正则:([a-zA-Z]+)(?=&)

(?<=token=).+?(?=&) 取出urlpara
(?<=p=).+?(?=&) 取出add

试试这个吧:token=([\\s\\S]*?)&p=([\\s\\S]*?)&\\S+

token=([\\s\\S]*?)&p=([\\s\\S]*?)&\\S+
返回的是一个数组,分别是取出的 urlpara和add

标签数是变化的么?如果不是变化的这样就行
s=\'stockpick/cache?token=urlpara&p=add&perpage=70&showType=\'
r=re.compile(\'.*(=(.*)&.*)=(.*)&.*=(.*)&.*\')
r.search(s).group(1)
r.search(s).group(2)

技术专栏03-正则表达式及案例分析

上一篇文章写了爬虫基础,如何使用requests库和BeautifulSoup库进行数据爬取,而有的时候,我们可以不需要使用BeautifulSoup来对网页进行解析,而是直接通过正则表达式re模块(regular expression)来进行直接的信息爬取。

什么是正则表达式?

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等,全程不需要解析库,在有些情况下更加方便快捷。

正则表达式有定义了一些字符集,主要分成3类:一般字符、数量词和连接匹配字符。

图1 一般字符
图2 数量词字符
图3 边间匹配字符

而我们一般最常用的表达手法是 (.*?)

标签:

提交需求或反馈

Demand feedback