Как найти строку в тексте и вернуть строку из текста?

#python #python-3.x

#python #python-3.x

Вопрос:

Мне нужно найти строку, в которой уже удалены специальные символы. Итак, я хочу найти эту строку в предложении и вернуть строку со специальными символами. Пример: string = France09

Sentence : i leaved in France'09.

теперь, когда я сделал re.search('France09',sentence) , он вернет True или False . Но я хочу получить выходные данные в виде France'09 .

Кто-нибудь может мне помочь.

Комментарии:

1. Ваше регулярное выражение корректно, только если ожидаемый результат France'09 . Возможно, вам потребуется group() извлечь выходные данные.

2. Итак, вы хотите, чтобы ' s добавлялись к вашим результатам? Слова, которые, как ожидается, будут иметь ' , следуют определенному шаблону? Всегда ли за словом следует число? В противном случае, как вы узнаете, куда поместить ' ?

Ответ №1:

Из документации (https://docs.python.org/2/library/re.html#re.search ) поиск не возвращает True или False :

Просматривайте строку в поисках первого местоположения, где шаблон регулярного выражения выдает совпадение, и возвращайте соответствующий экземпляр MatchObject. Возвращайте None, если ни одна позиция в строке не соответствует шаблону; обратите внимание, что это отличается от поиска совпадения нулевой длины в некоторой точке строки.

Ответ №2:

Взгляните на https://regex101.com/r/18NJ2E/1

TL;DR

 import re

regex = r"(?P<relevant_info>France'09)"
test_str = "Sentence : i leaved in France'09."
matches = re.finditer(regex, test_str, re.MULTILINE)
for match in matches:
    print(match.group('relevant_info'))
  

Ответ №3:

Попробуйте это:

 Input_str = "i leaved in France'09"

Word_list = Input_str.split(" ")
for val in Word_list:
    if not val.isalnum():
        print(val)
  

Вывод:

 France'09
  

Ответ №4:

Вам нужно будет создать регулярное выражение, которое соответствует специальным символам в любом месте:

 import re
Sentence = "i leaved in France'09"
Match = 'France09'
Match2 = "[']*".join(Match)
m = re.search(Match2, Sentence)
print(m.group(0))
  

Match2 получает значение "F[']*r[']*a[']*n[']*c[']*e[']*0[']*9" . Вы можете добавить другие специальные символы в ['] часть.

Комментарии:

1. можете ли вы показать мне, как вы можете обработать это для двух специальных символов? предложение =’Я родился 31.12.1989′ поле =’12311989

2. @yoganand_DS Обновите предложение и сопоставьте переменные. Match2 = ['/]*".join(Match)