#python #python-3.x #nsregularexpression
#питон #python-3.x
Вопрос:
Тема
Я хотел бы извлекать слова или цитаты с цитатами без цитат, используя re.finditer()
функцию, а не re.findall().
text = 'This is a very "sweet" and "beautiful" cake.' -gt; ['sweet', 'beautiful']
выведите проблему
re.finditer()
Функция возвращается с котировками, и я понятия не имею, как избавиться от верхних и нижних двойных котировок.
['sweet', 'beautiful'] ['"sweet"', '"beautiful"']
Код
import re text = 'This is a very "sweet" and "beautiful" cake.' all = re.findall('"(.*?)"', text) print(all) all_obj = re.finditer('"(.*?)"', text) result = [] for obj in all_obj: result.append(obj.group()) print(result)
То, что я пытался сделать
Без зачистки, есть ли какое-либо решение для устранения этой проблемы?
final_result = [] for word in result: final_result.append(word.rstrip('"').lstrip('"')) print(final_result) ['sweet', 'beautiful']
Комментарии:
1. Что не так с вашим текущим решением?
Ответ №1:
Пожалуйста, используйте .group(1)
для сопоставления и извлечения вашей группы:
result.append(obj.group(1))