re.error: неопределенный набор символов в позиции при чтении перемешивания - PullRequest
0 голосов
/ 10 апреля 2020

Это строка, которую я получил

Это заданное движение

Immunodeficiency with increased immunoglobulin [M] [IgM] Maternal care for anti-D [Rh] antibodies, unspecified trimester

Я пытался найти несколько вхождений строки в строке в Python, и получите их индекс.

итак, со строкой ввода

  char = random input string

Я хотел получить такой результат:

result = [[index, index, index],[index, index, index ]]

так, это код, который Я использовал.

            a = [m.start() for m in re.finditer(char,given string)]

, но он не работал для метасимволов и вызвал re.error: неопределенный набор символов в позиции 0

, как я могу улучшить этот код?

1 Ответ

1 голос
/ 10 апреля 2020

Если вы хотите использовать re.finditer() со случайной входной строкой, вам нужно экранировать ее, если она содержит символы, которые имеют особое значение в регулярных выражениях.

regex = re.escape(char)
a = [m.start() for m in re.finditer(regex,given string)]
...