【问题标题】:python regex need help to enumerate data [duplicate]python regex需要帮助来枚举数据[重复]
【发布时间】:2019-03-26 09:26:13
【问题描述】:

我想从这一行枚举“4.9.8”。我怎么能得到那个。我是正则表达式的新手。

import re
url  = 'http://variety.com'
line = "<script type=\'text/javascript\' src=\'https://js-sec.indexww.com/htv/htv-jwplayer.min.js?ver=4.9.8\'></script>"
regex = "?ver=(.+?)\'>"
version = re.findall(regex,line)
print(version)

【问题讨论】:

  • ? 是正则表达式中的一个特殊字符,使得它修改的模式是可选的(匹配 1 次或 0 次)。 Escape it, \?.
  • @Shivam Raj 请不要根据你得到的答案更新问题中的代码,否则这个问题不再有意义 - 我想知道问题是什么,因为我正在查看更正后的代码。我将您的编辑回滚到原始版本。

标签: python regex findall


【解决方案1】:

转义?特殊字符:

import re
url  = 'http://variety.com'
line = "<script type=\'text/javascript\' src=\'https://js-sec.indexww.com/htv/htv-jwplayer.min.js?ver=4.9.8\'></script>"
regex = "\?ver=([0-9.]+)"
version = re.findall(regex,line)
print(version)

返回:

['4.9.8']

我使用了"\?ver=([0-9.]+)" regexp,但你也可以像这样使用你的: regex = "\?ver=(.+?)\\'&gt;"(也转义\)

【讨论】:

  • 这个正则表达式引发错误raise source.error("unbalanced parenthesis") re.error: unbalanced parenthesis at position 13
  • @ShivamRaj 不在我的电脑上(python 3.6.4)你使用哪个版本?
  • 不...谢谢它解决了我的问题。顺便说一句,我也在使用 3.6.4
猜你喜欢
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
  • 2015-09-24
  • 2021-06-06
  • 2014-03-09
  • 1970-01-01
相关资源
最近更新 更多