double07 发表于 2022-4-4 20:35

python正则取数遇到问题?

用目前正则代码(http://tianqi.2345.com/js/citySelectData.js)取出来的结果不对,比如“包河“希望用正则取出来城市及代码:包河-71873,而我的正则代码取出来则是包河-58321,与合肥-58321重复了,请问怎样写正则取出来的才不重复?
response_one = requests.get('http://tianqi.2345.com/js/citySelectData.js')
Code = re.findall('[\u4e00-\u9fa5]{2,}\s?-\d{5}', response_one.text)
print(Code)

想把风吹灭的火 发表于 2022-4-4 21:07

([^\x00-\xff]+-\d+?)['|]

double07 发表于 2022-4-4 21:10

想把风吹灭的火 发表于 2022-4-4 21:07
([^\x00-\xff]+-\d+?)['|]

没调试成功,求指点{:1_908:}

unmask 发表于 2022-4-4 21:47

不是前面的code才是你想要的么?
\d{5}-\w\s[\u4e00-\u9fa5]{2,}

涛之雨 发表于 2022-4-4 21:54

楼主可能要弄清楚需要匹配的是什么,
http://pic.rmb.bdstatic.com/bjh/b9089205bd2dabecc3a9cc29601cb597.png
楼主需要匹配的
包河-71873
是不存在的,如果确定是确认没有错误,就需要自行拼接而不是正则表达式去匹配

double07 发表于 2022-4-4 21:55

本帖最后由 double07 于 2022-4-4 21:56 编辑

unmask 发表于 2022-4-4 21:47
不是前面的code才是你想要的么?
\d{5}-\w\s[%u4e00-%u9fa5]{2,}
感谢大佬 ,大佬代码取出来是71873-B 包河,我想要的格式是包河-71873,是不是不能一步到位?只能二次加工?

double07 发表于 2022-4-4 21:56

涛之雨 发表于 2022-4-4 21:54
楼主可能要弄清楚需要匹配的是什么,

楼主需要匹配的


明白了只能做拼接,二次加工

unmask 发表于 2022-4-4 22:08

double07 发表于 2022-4-4 21:56
明白了只能做拼接,二次加工

response_one = requests.get('http://tianqi.2345.com/js/citySelectData.js')
Code = {2,})', response_one.text)]
print(Code)

zousifang66 发表于 2022-4-4 22:39

学习一下

suruo14 发表于 2022-4-5 08:19

学习学习
页: [1]
查看完整版本: python正则取数遇到问题?