Привет Я пишу простой лексер, основанный на регулярных выражениях.символ регулярного выражения литерал против контекста
Один маркер лексер является CHARLITERAL что любой символ, заключенный в одинарные кавычки, то есть:
'A'
'.'
даже
'''
допускается.
Единственный раз, когда это не допускается в такой ситуации, как этого
somerandomcontext'('"')
В этом случае только CHARLITERAL в скобках является действительным, и он должен игнорировать первую одинарную кавычку. Я ищу регулярное выражение, которое возвращает '"'
вместо '('
, когда я передаю ему указанную выше строку. Очевидно, '[^\n\r]'
не режет. К сожалению, я не так хорошо знаком с утверждениями в регулярных выражениях.
Спасибо. Я закончил использование '(?! \\ (' [^ \ n \ r] '\\)) [^ \ n \ r]'. Потому что это захватывает ситуации, когда есть только открытая скобка, но не закрывающая. – sebs