如何使用 python re 来描述这个?
How to describe this using python re?
我正在创建深奥的编程语言,我想实现这个结构来打印文本:
!(some-text)
此结构必须在括号中写入文本并以 ).
结尾
但由于某种原因,这个结构只有在找到换行符时才会结束。我认为它发生是因为点匹配除 \n 之外的任何符号。我尝试使用 (?!...) 创建条件,但这也不起作用。最终我不知道如何匹配没有 \n 和 ).
的所有符号
下面我附上了令牌的完整代码 table 以便您发现其中的错误并提出修复它们的方法。
在此先感谢您的帮助!
token_table = [
(r'[ \t\n]+', 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')
我正在创建深奥的编程语言,我想实现这个结构来打印文本:
!(some-text)
此结构必须在括号中写入文本并以 ).
结尾但由于某种原因,这个结构只有在找到换行符时才会结束。我认为它发生是因为点匹配除 \n 之外的任何符号。我尝试使用 (?!...) 创建条件,但这也不起作用。最终我不知道如何匹配没有 \n 和 ).
的所有符号下面我附上了令牌的完整代码 table 以便您发现其中的错误并提出修复它们的方法。 在此先感谢您的帮助!
token_table = [
(r'[ \t\n]+', 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')