У меня есть список ключевых слов, и я хочу проанализировать список длинных строк для ключевого слова, любое упоминание цены в формате валюты и любое другое число в строке меньше 10. Например:
keywords = ['Turin', 'Milan' , 'Nevada']
strings = ['This is a sentence about Turin with 5 and $10.00 in it.', ' 2.5 Milan is a city with £1,000 in it.', 'Nevada and $1,100,000. and 10.09']]
, мы надеемся, вернут следующее:
final_list = [('Turin', '$10.00', '5'), ('Milan', '£1,000', '2.5'), ('Nevada', '$1,100,000', '')]
У меня есть следующая функция с действующими регулярными выражениями, но я не знаю, как объединить выходные данные в список кортежей.Есть ли более простой способ добиться этого?Должен ли я разделить слово, а затем искать совпадения?
def find_keyword_comments(list_of_strings,keywords_a):
list_of_tuples = []
for string in list_of_strings:
keywords = '|'.join(keywords_a)
keyword_rx = re.findall(r"^\b({})\b$".format(keywords), string, re.I)
price_rx = re.findall(r'^[\$\£\€]\s?\d{1,3}(?:[.,]\d{3})*(?:[.,]\d{1,2})?$', string)
number_rx1 = re.findall(r'\b\d[.]\d{1,2}\b', string)
number_rx2 = re.findall(r'\s\d\s', string)