Products
GG网络技术分享 2025-03-18 16:15 0
[{"domazon","pature":false,"exate":1536346214,"httpOlse,"hostOlse,"name":"csm-hit","value":"tb:s-XRZ1FEWCK|1642869380468&t:1642869380469&adb:adblk_no"},{"domazon","pature":false,"exate":1741456214,"httpOlse,"hostOlse,"name":"csd-key","value":"eyJ3YXNtVGVzdGVkIjp0cnVlLCJ3YXNtQ29tcGF06MSwia2lkIjoiYjc5OGZkIiwia=="},{"domazon","pature":false,"exate":1741456214,"httpOlse,"hostOlse,"name":"x-acbin","value":""4AwgoEsrequpBhtVhr6lqXYSVBi3a4xa9Oq@nO3Gz8aqninbBQpOEDGPcECueaQt""}]
上面这串代码,我使用了
.?{"domazon","p."csd-key".?},
我只想要中间以{"domazon"开头到第一个}结尾的那一段,但是我的代码是从第一个匹配,如何才能只取中间的呢?
用正则表达式的话.*?(你要匹配的字符串).*?就行了
import restrs = '[{"domazon","pature":false,"exate":1536346214,"httpOlse,"hostOlse,"name":"csm-hit","value":"tb:s-XRZ1FEWCK|1642869380468&t:1642869380469&adb:adblk_no"},{"domazon","pature":false,"exate":1741456214,"httpOlse,"hostOlse,"name":"csd-key","value":"eyJ3YXNtVGVzdGVkIjp0cnVlLCJ3YXNtQ29tcGF06MSwia2lkIjoiYjc5OGZkIiwia=="},{"domazon","pature":false,"exate":1741456214,"httpOlse,"hostOlse,"name":"x-acbin","value":""4AwgoEsrequpBhtVhr6lqXYSVBi3a4xa9Oq@nO3Gz8aqninbBQpOEDGPcECueaQt""}]'
str= '.*?adblk_no"},(.*?),{"domazon".*?'
s = re.match(str,strs)
print(s.group(1))
试了.*?{"domazon","p."csd-key".?},不起作用
你可以用这个正则表达式,(\\{.*\\}),
匹配中间的那段
'[{"domazon","pature":false,"exate":1536346214,"httpOlse,"hostOlse,"name":"csm-hit","value":"tb:s-XRZ1FEWCK|1642869380468&t:1642869380469&adb:adblk_no"},{"domazon","pature":false,"exate":1741456214,"httpOlse,"hostOlse,"name":"csd-key","value":"eyJ3YXNtVGVzdGVkIjp0cnVlLCJ3YXNtQ29tcGF06MSwia2lkIjoiYjc5OGZkIiwia=="},{"domazon","pature":false,"exate":1741456214,"httpOlse,"hostOlse,"name":"x-acbin","value":""4AwgoEsrequpBhtVhr6lqXYSVBi3a4xa9Oq@nO3Gz8aqninbBQpOEDGPcECueaQt""}]'.match(/[{][^{]+[}]/g)
项目地址:https://github.com/zeeshanu/learn-regex
正则表达式是一组由字母和符号组成的特殊文本, 它可以用来从文本中找出满足你想要的格式的句子.
一个正则表达式是在一个主体字符串中从左到右匹配字符串时的一种样式. 例如"Regular expression"是一个完整的句子, 但我们常使用缩写的术语"regex"或"regexp". 正则表达式可以用来替换文本中的字符串,验证形式,提取字符串等等.
想象你正在写一个应用, 然后你想设定一个用户命名的规则, 让用户名包含字符,数字,下划线和连字符,以及限制字符的个数,好让名字看起来没那么丑. 我们使用以下正则表达式来验证一个用户名:
以上的正则表达式可以接受 john_doe, jo-hn_doe, john12_as. 但不匹配Jo, 因为它包含了大写的字母而且太短了.
正则表达式其实就是在执行搜索时的格式, 它由一些字母和数字组合而成. 例如: 一个正则表达式 the, 它表示一个规则: 由字母t开始,接着是h,再接着是e.
"the" => The fat cat sat on the mat.
Demand feedback