如何使用python re来描述这个?



我创建了一个深奥的编程语言,我想实现这个结构来打印文本:

!(some-text)

该结构必须在括号中写入文本,并以结尾

但是由于某些原因,这个结构只在查找换行符时结束。我认为这是因为点匹配除了n以外的任何符号。我尝试使用(?!…)创建条件,但这也不起作用。最终我不知道如何匹配没有n)的所有符号。

下面我附上了令牌表的完整代码,以便您发现其中的错误并建议修复它们的方法。提前感谢任何帮助!

token_table = [
(r'[ tn]+', None),
(r'!((?!)).*)', 'PRINTSTR'), # This is not working
(r'[-]?[0-9]+', 'INT'),
(r'(?!!|?|(|)|:|<|>|+).*', None),
(r'!', 'PASS'),
(r'?', 'IF'),
(r'(', 'LPAR'),
(r')', 'RPAR'),
(r'>', 'INPUT'),
(r'<', 'PRINT'),
(r':', 'GOTO'),
(r'+', 'ADD'), ]

不要使用.,使用[^)]来匹配)以外的任何字符。包括换行符

(r'!([^)]*)', 'PRINTSTR')

最新更新