Как вывести ошибку с позицией в регулярных выражениях
я провожу синтаксический анализ переменных python на языке python с помощью регулярных выражений. Для того чтобы вывести синтаксическую ошибку я могу найти строку, но не могу найти позицию в строке, подскажите пожалуйста каким образом это реализовать? Пример регулярного выражения для присвоения переменной целого числа
import re
pattern = r"^(\s)*([a-zA-Z][a-zA-Z]*)\s*=\s*([1-9]\d*)\s*$"
string = "a = s2"
Нужно найти позицию ошибки в строке, а именно букву "s".
Ответы (1 шт):
Автор решения: Dmitry
→ Ссылка
Метод re.search() в библиотеке re. Пример:
import re
pattern = r"a"
string = "nndfuøkdiaunsdk"
result = re.search(pattern, string)
Если посмотреть в result, то там лежит это:
>>> result
<re.Match object; span=(9, 10), match='a'>
Объект который хранит положение в строке (span) и какое совпадение. Отсчет с нуля, конечное значение не включается. Т. е. запись (9,10) буквально значит на 9 позиции с нуля