vcbeaut 发表于 2020-10-29 13:10:58

正则怎么不要边界?

x = '[{"name":"11151330"}]'

print(re.search(r'[[{"name":](.*?)[}]]', x))

这时候打印出来的仍然是x的值,怎么只取出"11151330"呢?

suchocolate 发表于 2020-10-29 13:17:07

本帖最后由 suchocolate 于 2020-10-29 14:24 编辑

print(re.findall(r'name":"(.*)"', x))
print(re.search(r'name":"(.*)"', x).groups(0))

vcbeaut 发表于 2020-10-29 13:22:21

suchocolate 发表于 2020-10-29 13:17


没有变化吧?我试了一下

suchocolate 发表于 2020-10-29 13:23:08

vcbeaut 发表于 2020-10-29 13:22
没有变化吧?我试了一下

我写错了,你试试re.findall,代码改好了。

hrp 发表于 2020-10-29 13:46:16

import re
x = '[{"name":"11151330"}]'
print(re.search(r'\[\{"name":"(\d+)"\}\]', x).group(1))

Cool_Breeze 发表于 2020-10-29 14:18:52

本帖最后由 Cool_Breeze 于 2020-10-29 15:56 编辑

了解一些,但还不够!

re.search(r'"name":([\'"])?(.*)\1?}',x).group(2)
re.search(r':(?P<punct>[\'"])(?P<digit>*)(?P=punct)', x).group('digit')
re.search(r':(?P<punct>[\'"])(?P<digit>(?a:*)).*(?P=punct)', x).group('digit')
re.search(r'(?<="name":)(?P<punct>[\'"])(?P<digit>*).*(?P=punct)', x).group('digit')

json
x=json.loads('[{"name":"11151330"}]')

kogawananari 发表于 2020-10-29 14:32:59

print(re.search(r'(?<=\[{"name":).*?(?=}\])', x).group())

这是所有语言通用的正则 不依赖python的分组
页: [1]
查看完整版本: 正则怎么不要边界?