我正在用Python开发一个项目,它将任何给定的字符串规范化为纯纯文本。问题是,我的输入非常不规则,有些数字是格式化的(值、价格),而另一些数字则没有格式化(年份、年龄)。我试图收集所有这些文件,而不关心是否使用下面的脚本进行格式化。
def get_nums(line):
formatted_nums = re.compile('\d{1,3}[,.]\d{1,3}')
nums = re.compile('\d+')
formatted_nums_data = rm_repetitions(formatted_nums.findall(line))
nums_data = rm_repetitions(nums.findall(line))
return formatted_nums_data + nums_data然而,考虑到这句话:劳斯莱斯汽车公司(Royce Cars Inc. .)表示,预计1990年美国汽车销量将保持稳定在1,200辆左右。它向我提供了以下结果:
[u'1,200', u'1', u'200', u'1990']尽管如此,我想要的输出是:
[u'1,200', u'1990']这类问题有什么解决办法吗?提前谢谢你
发布于 2020-04-25 08:35:31
您不希望出现一个或多个事件,这就是+给您的
您想要4次这样的{4}
import re
def get_nums(line):
formatted_nums = re.compile('\d{1,3}[,.]\d{1,3}')
nums = re.compile('\d{4}') # CHANGE
# using SET to remove duplicates
formatted_nums_data = list(set(formatted_nums.findall(line)))
nums_data = list(set(nums.findall(line)))
return formatted_nums_data + nums_data
line = "Rolls-Royce Motor Cars Inc. said it expects its U.S. sales to remain steady at about 1,200 cars in 1990"
print(get_nums (line))['1,200', '1990']https://stackoverflow.com/questions/61422758
复制相似问题