在regex match中打印后续组,文本出现在使用Python找到的模式之后
目前,我的Python脚本如下所示:在regex match中打印后续组,文本出现在使用Python找到的模式之后,python,regex,Python,Regex,目前,我的Python脚本如下所示: import re data = open('toy.json', 'r') for line in data: m = re.search('\"gas\"', line) if m: found = m.group(0) print(found) 我的数据是这样的(它不是有效的JSON,这就是为什么我要用regex解析它): 我的脚本输出以下信息: "gas" "gas" 但事实上,我想要的是与此更
import re
data = open('toy.json', 'r')
for line in data:
m = re.search('\"gas\"', line)
if m:
found = m.group(0)
print(found)
我的数据是这样的(它不是有效的JSON,这就是为什么我要用regex
解析它):
我的脚本输出以下信息:
"gas"
"gas"
但事实上,我想要的是与此更相似的东西:
...
"hash": "0xf2b5b8fb173e371cbb427625b0339f6023f8b4ec3701b7a5c691fa9cef9daf63",
"gasUsed": "21000",
"hash": "0xf8f2a397b0f7bb1ff212b6bcc57e4a56ce3e27eb9f5839fef3e193c0252fab26"
"gasUsed": "21000"
...
我试图将其更改为输出后续的
组
,但没有成功 不能打印找到的行
,而只能打印找到它的整个行
import re
data = open('toy.json', 'r')
for line in data:
m = re.search('\"(gas|hash)\"', line)
if m:
found = m.group(0)
print(line.strip())
我更改了正则表达式,因此它使用了
“(gas | hash)”
这里组2和组3分别包含“hash”和“gasUsed”的值:
组应该由您定义:)您没有在模式中定义任何组,这就是它不起作用的原因。0始终是完全匹配,在此范围内,您可以通过在模式中使用括号来拥有匹配组。谁来定义组?NIIIICE:-)
import re
data = open('toy.json', 'r')
for line in data:
m = re.search('\"(gas|hash)\"', line)
if m:
found = m.group(0)
print(line.strip())