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

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

7个回答

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

qq_27323623
Yirujet 回复Tom20081: 互相提高,客气啦
接近 2 年之前 回复
wuwei2_00_8
Tom20081 回复Yirujet: 非常感谢耐心解答
接近 2 年之前 回复
qq_27323623
Yirujet 回复Tom20081: 最新匹配可以看下最下面的截图
接近 2 年之前 回复
qq_27323623
Yirujet 回复Tom20081: 那就把upara固定匹配:(?<=\(upara\))(\w+)(?=\(upara\)&),如果支持回顾的话,这个正则可以直接满足楼主的要求;若不支持,就用这个\(upara\)(\w+)(?=\(upara\)&),这样会把前面的(upara)匹配到,直接获取捕获组,就是楼主想要的参数值啦。
接近 2 年之前 回复
wuwei2_00_8
Tom20081 回复Yirujet: 是这样的,如果文本中有(u)abc(u)这样的字符串,那么用正则表达式(\w+)(?=\(\w+\)&)也会取出abc,但是我只希望取两个(upara)之间的数据即(upara) “参数”(upara),小括号中一定是upara,(upara)是我人为加入用来区别其他字符串的
接近 2 年之前 回复
qq_27323623
Yirujet 回复Tom20081: 不需要做任何调整啊,\w+可以取出参数值了,不论是否人为加入
大约 2 年之前 回复
wuwei2_00_8
Tom20081 回复Yirujet: 麻烦再问一下(upara)这个字符串是我人为加入的,就是括号里一定是upara,正则表达式改为什么呢?
大约 2 年之前 回复
qq_27323623
Yirujet 回复Tom20081: 楼主,看你使用的语言啦,如果支持后顾的话,可以用如下正则:(?<=\(\w+\))(\w+)(?=\(\w+\)&),如果不支持的话,就用如下正则:(\w+)(?=\(\w+\)&),测试图请看最下方
大约 2 年之前 回复
wuwei2_00_8
Tom20081 谢谢各位热心解答,上面的标签没显示出来,将尖括号改为小括号示例应该是这样的: stockpick/cache?token=(upara)urlpara(upara)&p=(upara)add(upara)&perpage=70&showType= 使用正则表达式取出两个标签(upara) (upara)之间的文字,应取出urlpara与add两个字符串,结果应为一个字符串数组, 求正则表达式写法,最好用软件或在线工具测试过。
大约 2 年之前 回复

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

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

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)

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

图片说明

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

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

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!