微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

   !(some-text)

此结构必须在括号中写入文本并以)结尾。

但由于某种原因,这种结构只有在找到换行符时才会结束。我认为这是因为点匹配除 \n 之外的任何符号。我尝试使用 (?!...) 创建条件,但这也不起作用。最终我不知道如何在没有 \n) 的情况下匹配所有符号。

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

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

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。