Pyparsing - имя не начинается с символа
Я пытаюсь использовать Pyparsing для определения ключевого слова, которое не начинается с $ Так для следующего ввода:
$abc = 5 # is not a valid one
abc123 = 10 # is valid one
abc$ = 23 # is a valid one
Я попробовал следующее
var = Word(printables, excludeChars='$')
var.parseString('$abc')
Но это не позволяет $ в VAR. Как указать все печатаемые символы, кроме $, в первой позиции символа? Любая помощь будет оценена.
Спасибо Абхиджит
1 ответ
Решение
Вы можете использовать метод, который я использовал, чтобы определить "все символы, кроме X", прежде чем я добавлю параметр excludeChars в класс Word:
NOT_DOLLAR_SIGN = ''.join(c for c in printables if c != '$')
keyword_not_starting_with_dollar = Word(NOT_DOLLAR_SIGN, printables)
Это должно быть немного эффективнее, чем создание с Combine и NotAny. Но это будет соответствовать практически чему угодно, целым числам, словам, действительным идентификаторам, недействительным идентификаторам, поэтому я скептически отношусь к значению такого рода выражений в вашем парсере.