0

我正在尝试使用 Python Lark 解析数据库中计划的输出。这是我的语法:

start: op

op: command "(" op ")" "[" text "]"  
    | command "(" op ")" "[" text "]" WORD
    | command "(" op ")" "[" text "]" "," op 
    | command "(" op ")" "[" text "]" WORD "," op 
    | simple 

command: WORD | WORD WORD -> command

simple: /[A-Za-z"._]+/

text : /[A-Za-z0-9=.!%,\-" _:]+/ 

%import common.WORD
%import common.ESCAPED_STRING
%import common.WS
%ignore WS

不是世界上最好的语法,但它适用于简单的事情。问题是,有时文本内有括号和括号,这并不重要。如果我将它们添加到正则表达式文本规则中,它会弄乱 op 规则。有没有一种简单的方法来解决这个问题,还是我必须添加关于文本的复杂规则?

4

0 回答 0