Python正则表达式:如何从字符串中提取人的身高(美国)

时间:2018-08-07 16:59:34

标签: python regex string text

如果我有一个字符串,其中包含美国形式的人类身高(英尺,英寸)
例如I've been 5'10" since I was 18
如何使用正则表达式将5'10“提取为元组?
例如(5, 10)

到目前为止,我已经尝试过:

s = "I've been 5'10\" since I was 18"
re.findall(r'\d\'\d+\"', s)

希望获取第一个数字,该数字应该是一个数字\d,然后是\d+的后两个数字,但这并不是很干净,返回['5\'10"']并返回需要更多的分割等。理想情况下,有一种方法可以使用正则表达式来完成所有操作。

2 个答案:

答案 0 :(得分:1)

>>> r = re.compile('(\\d+)\'(\\d+)"')
>>> r.findall('''I've been 5'10" since I was 18''')
[('5', '10')]

答案 1 :(得分:1)

import re
a='''I've been 5'10" since I was 18''' #triple quotes to account for " after 10
p=re.compile(r"[0-9]+'[0-9]{2}\"")
print(re.findall(p,a)[0])

还有瞧!