#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 )]
Это будет искать два значения, разделенные дефисом, в квадратных скобках.