Поиск шаблона в Python

#python #function

#python #функция

Вопрос:

У меня есть файл. Я хочу создать шаблон. Затем я вычислю некоторые значения. Я использую приведенный ниже код. Как я могу разделить эти 3 значения? Кроме того, в некоторых столбцах есть пробелы, как показано на рисунке ниже.

 title=movies[3].split(",")[1]

title

pattern=r"(d )[(d )-(d )]"

import re
re.findall(pattern,title)
 

введите описание изображения здесь

введите описание изображения здесь

Ответ №1:

Вы забыли экранировать символы [ и ] . Теперь он рассматривается как определение определенного набора символов между этими скобками.

Измените ваше регулярное выражение на:

 pattern = r"(d )[(d )-(d )]"
 

Чтобы добавить необязательные пробелы в регулярное выражение, вы можете использовать s* . Таким образом, полное регулярное выражение будет

 pattern = r"(d )[s*(d )-(d )s*]"
 

Ответ №2:

Если вы ищете конкретно - символ, вам нужно будет экранировать его с помощью , так как это заставит выражение искать символ вместо того, чтобы использовать его для другого использования определения диапазона.

Это означает, что ваш новый шаблон должен выглядеть так: (d )[(d )-(d )]

В качестве примечания я могу порекомендовать использовать regex101 для двойной проверки ваших шаблонов перед их использованием!


Добавление ответа Маттиаса сюда. Если квадратные скобки являются частью заголовка, вы также захотите их избежать, например: (d )[(d )-(d )]

Это будет искать два значения, разделенные дефисом, в квадратных скобках.