У меня есть текст, в котором возраст и пол человека упоминается в некоторых записях (не во всех) как 28M
, или 35 F
, или 29 male
, или 57Female
и т. Д.
Я написал следующее регулярное выражение, чтобы проверить, существует ли какой-либо шаблон, который соответствует номеру, за которым следует M
во входной строке, и если да, чтобы распечатать его, но код ничего не печатает:
import re
text = 'Decision: Standard\r\n\r\n 36M NS\r\nBasic - 500th MP tdb addd cib 250th\r\n\r\nDue Date: Settlement date'
test_search = re.search('[0-9]+M', text)
if test_search:
print("Age: "+test_search.group(0)+", Gender: "+test_search.group(1))
Я ожидал, что он напечатал Age: 36, Gender: M
. Тем не менее, он ничего не делает - ни ошибки, ни вывода, ничего.
Я пытался re.match('[0-9]+F', text)
, там тоже ничего не случилось.
Кроме того, я подумал, что мне нужно написать столько регулярных выражений, сколько шаблонов (по одному для 28M
, 35 F
, 29Male
, 57 female
и т. Д.). Это правильный подход? Или есть способ найти / найти / сопоставить все эти шаблоны одновременно?