【发布时间】:2021-04-10 05:32:46
【问题描述】:
我有一个字符串,我希望从中提取一个值。字符串为:'data - hk = "136 HK"'。我知道,数据 - hk = 总是在值之前,因此我可以使用简单的 python str.split()。这不是一个简洁的解决方案。我想更熟悉正则表达式,但到目前为止我的尝试都失败了。
这是我尝试过的:
text = 'data - hk = "136 HK"'
# With simple text split - returns 136
int(text.split("data - hk = ")[1].split('"')[1].split(" HK")[0])
# With regex - returns nothing
re.search("[\n\r].*data - hk:\s*([^\n\r]*)", str(text))
有人可以指导我,我需要在正则表达式中更改什么吗?
【问题讨论】:
-
可能类似于
re.findall(r'^data - hk = "(\d+) HK"', text)。但是捕获的子字符串总是整数吗?看起来像是你自己尝试拆分的结果。 -
谢谢,是的,它永远是整数
-
我在之前的评论中忘记了结束字符串锚点。 @Rva92。它最终对你有用吗?
-
是的,非常感谢。将其发布为答案,我会标记它
标签: python-3.x regex