как вырезать символ из другого конкретного символа в строке - PullRequest
0 голосов
/ 04 ноября 2018

У меня в ANTLR одна строка, определяющая символ ошибки (табуляция и одинарная кавычка) при вводе строки, такой как CHAR_ERROR: '"' * ['\ t] *'" '{поднять CharError (self.text)}; и мой тестовый ввод как "привет, меня зовут пустышка" Я получил вывод «Ошибка символа в строке:« Привет, меня зовут пустышка »

Но требование к выводу должно быть с начала строки до только символ ошибки, исключая двойную кавычку. (например, вывод для приведенного выше примера должен быть: привет, мое имя ») Кто-нибудь может мне помочь, пожалуйста?

1 Ответ

0 голосов
/ 05 ноября 2018

Как я понял, вы не хотите изменять то, что соответствует правилу, а хотите отображать только определенную подстроку соответствия в сообщении об ошибке. Таким образом, вы можете просто использовать строковую функциональность Python:

raise CharError(self.text[1:self.text.index("'")+1])

Здесь мы используем 1 в качестве начального индекса, чтобы избавиться от " и добавить +1 к индексу ', чтобы включить ' в подстроку.

...