[英]How can I extract digits from given string
def parse_distance(string):
# write the pattern
pp = re.compile("\d+")
result = pp.search(string)
if True:
# turn the result to an integer and return it
dist = int(result)
return dist
else:
return None
parse_distance("LaMarcus Aldridge misses 13-foot two point shot")
我需要从上面显示的字符串中获取13,它给我的错误是int(result)具有不是字符串的错误。 因此,我需要从字符串中获取数字并将其转换为整数,谢谢。
您需要从group()
获取匹配的数字:
def parse_distance(string):
pp = re.compile(r"(\d+)-foot")
match = pp.search(string)
return int(match.group(1)) if match else None
一些示例用法:
>>> print(parse_distance("LaMarcus Aldridge misses 13-foot two point shot"))
13
>>> print(parse_distance("LaMarcus Aldridge misses 1300-foot two point shot"))
1300
>>> print(parse_distance("No digits"))
None
似乎您要从给定的字符串中提取数字;
import re
In [14]: sentence = "LaMarcus Aldridge misses 13-foot two point shot"
In [15]: result = re.findall('\d+', sentence)
In [16]: print result
['13']
In [17]: [int(number) for number in result ]
Out[17]: [13]
要么;
In [19]: result = [int(r) for r in re.findall('\d+', sentence)]
In [20]: result
Out[20]: [13]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.