关于跨行匹配包含空格的字符串

2017-03-18 16:20:31 +08:00
 zhaojjxvi

最近在自学 Python ,遇到个如题的问题。

这个网站: ATP Ranking

试着去抓里面国家 /地区名简写与全称的列表,源代码大概如下:

我在交互界面用 re.findall 和 request.urlopen 以及如下 Pattern 算是误打误撞匹配出来

'([A-Z]{3})“.*?([A-Z].*?)\\r\\n'

这个是效果:

但是用 Spyder 写成 py 就不行了,纠结了不少天,找了不少资料,始终没有想到问题在哪儿。

Python 新手,特来请教,谢谢!

1628 次点击
所在节点    正则表达式
3 条回复
gamexg
2017-03-18 20:11:22 +08:00
看着别扭,重写了个

data value="([^"]*?)"[^>]*?>([^<]+?)<

大概这样,手机写的。
zhaojjxvi
2017-03-18 21:16:09 +08:00
@gamexg
多谢!
第二对圆括号之间是不是会包含\n, \t 什么的?
gamexg
2017-03-18 21:44:27 +08:00
@zhaojjxvi #2

data-value="([^"]*?)"[^>]*?>\s*([^\s<]+?)\s*<

加个\s 匹配空格等可以排除 \n\t 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/348470

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX