使用正则表达式从文本中提取元素并附加到字典

大卫·施瓦茨

我正在尝试使用某种类型的循环和正则表达式从我从网站检索的文本中创建字典。我希望字典看起来像这样:

{36:30281, 36 2/3:30282, 37:30283, 37 1/3: 30283, 38:30284 etc..}

这是我从网站上检索的文本:

[option value="-1">Choose size</option>, option value="30281">\r\n\t\t\t\t\t\t\t\t\t36\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/option>, option value="30282">\r\n\t\t\t\t\t\t\t\t\t36 2/3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/option, option value="30283"\r\n\t\t\t\t\t\t\t\t\t37 1/3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/option, option value="30284">\r\n\t\t\t\t\t\t\t\t\t38\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</option>, option value="30285">\r\n\t\t\t\t\t\t\t\t\t38 2/3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</option>, option value="30286">\r\n\t\t\t\t\t\t\t\t\t39 1/3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</option>, option value="30287">\r\n\t\t\t\t\t\t\t\t\t40\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</option>, option value="30288">\r\n\t\t\t\t\t\t\t\t\t40 2/3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</option>, option value="30289">\r\n\t\t\t\t\t\t\t\t\t41 1/3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</option>]

我不太擅长正则表达式。谁能给我一个可以帮助我做到这一点的解决方案?

谢谢

可以使用(演示):

value=\"(\d+)\"\D*(\d+(?:\ [\d/]+)?)


Python 这将是(使用字典理解):

import re 

junk_string = """
[option value="-1">Choose size</option>, option value="30281">\r\n\t\t\t\t\t\t\t\t\t36\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/option>, option value="30282">\r\n\t\t\t\t\t\t\t\t\t36 2/3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/option, option value="30283"\r\n\t\t\t\t\t\t\t\t\t37 1/3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/option, option value="30284">\r\n\t\t\t\t\t\t\t\t\t38\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</option>, option value="30285">\r\n\t\t\t\t\t\t\t\t\t38 2/3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</option>, option value="30286">\r\n\t\t\t\t\t\t\t\t\t39 1/3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</option>, option value="30287">\r\n\t\t\t\t\t\t\t\t\t40\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</option>, option value="30288">\r\n\t\t\t\t\t\t\t\t\t40 2/3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</option>, option value="30289">\r\n\t\t\t\t\t\t\t\t\t41 1/3\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</option>]
"""

rx = re.compile(r'value=\"(\d+)\"\D*(\d+(?:\ [\d/]+)?)')
result = {m.group(2): m.group(1) 
            for m in rx.finditer(junk_string)}

print(result)
# {'36': '30281', '36 2/3': '30282', '37 1/3': '30283', '38': '30284', '38 2/3': '30285', '39 1/3': '30286', '40': '30287', '40 2/3': '30288', '41 1/3': '30289'}

但正如评论中已经说过的,这实际上不是文本而是 a 的一部分DOM,所以至少考虑使用解析器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用正则表达式从文本中提取帮助

来自分类Dev

使用正则表达式将XML元素的值附加到其他文本中

来自分类Dev

从正则表达式中提取文本?

来自分类Dev

正则表达式从文本中提取日期

来自分类Dev

正则表达式| 从文本中提取日期

来自分类Dev

在 Scala 中提取正则表达式之后的元素

来自分类Dev

python:使用正则表达式从日语Twitter文本中提取图释文本

来自分类Dev

使用正则表达式从网页中提取表格

来自分类Dev

使用正则表达式从网址中提取日期

来自分类Dev

使用正则表达式从地址中提取数字

来自分类Dev

使用正则表达式从网页中提取表格

来自分类Dev

使用正则表达式从列表中提取位置

来自分类Dev

使用正则表达式模式从文本中提取每个片段

来自分类Dev

Python使用正则表达式从文本中提取数字

来自分类Dev

使用正则表达式从文本文件中提取的字符串总和

来自分类Dev

使用正则表达式从单行文本中提取主机名

来自分类Dev

使用正则表达式从PHP中的字符串中提取文本

来自分类Dev

在R中使用正则表达式从网页中提取文本和数字

来自分类Dev

使用正则表达式从python中的文本中提取特定单词

来自分类Dev

使用正则表达式无法从某些文本中提取两个字段

来自分类Dev

使用正则表达式从Python字符串中提取超链接文本

来自分类Dev

正则表达式使用Ruby从文本中提取段落

来自分类Dev

使用正则表达式从给定单词中提取文本直到段落结尾

来自分类Dev

使用正则表达式从文本文件中提取数据

来自分类Dev

使用正则表达式从段落或文本块中提取URL

来自分类Dev

在Linux Shell中使用正则表达式从文本中提取IP地址和CIDR

来自分类Dev

使用正则表达式从C ++中的一行文本中提取数据

来自分类Dev

使用正则表达式Python从文本中提取文件名

来自分类Dev

使用grep从基于正则表达式的文件中提取一些文本

Related 相关文章

  1. 1

    使用正则表达式从文本中提取帮助

  2. 2

    使用正则表达式将XML元素的值附加到其他文本中

  3. 3

    从正则表达式中提取文本?

  4. 4

    正则表达式从文本中提取日期

  5. 5

    正则表达式| 从文本中提取日期

  6. 6

    在 Scala 中提取正则表达式之后的元素

  7. 7

    python:使用正则表达式从日语Twitter文本中提取图释文本

  8. 8

    使用正则表达式从网页中提取表格

  9. 9

    使用正则表达式从网址中提取日期

  10. 10

    使用正则表达式从地址中提取数字

  11. 11

    使用正则表达式从网页中提取表格

  12. 12

    使用正则表达式从列表中提取位置

  13. 13

    使用正则表达式模式从文本中提取每个片段

  14. 14

    Python使用正则表达式从文本中提取数字

  15. 15

    使用正则表达式从文本文件中提取的字符串总和

  16. 16

    使用正则表达式从单行文本中提取主机名

  17. 17

    使用正则表达式从PHP中的字符串中提取文本

  18. 18

    在R中使用正则表达式从网页中提取文本和数字

  19. 19

    使用正则表达式从python中的文本中提取特定单词

  20. 20

    使用正则表达式无法从某些文本中提取两个字段

  21. 21

    使用正则表达式从Python字符串中提取超链接文本

  22. 22

    正则表达式使用Ruby从文本中提取段落

  23. 23

    使用正则表达式从给定单词中提取文本直到段落结尾

  24. 24

    使用正则表达式从文本文件中提取数据

  25. 25

    使用正则表达式从段落或文本块中提取URL

  26. 26

    在Linux Shell中使用正则表达式从文本中提取IP地址和CIDR

  27. 27

    使用正则表达式从C ++中的一行文本中提取数据

  28. 28

    使用正则表达式Python从文本中提取文件名

  29. 29

    使用grep从基于正则表达式的文件中提取一些文本

热门标签

归档