python - Python SyntaxError:实现 bbcodepy 时语法无效
问题描述
我得到了bbcodepy,我可以修改它,但我不能在我的 main.py 中导入它。我不断收到 SyntaxError 并且我真的不知道代码有什么问题,因为我没有编写它。我只是想稍微修补一下,看看能不能满足我的需求。 这是一张指向语法错误方向的图像。但我注意到相同的代码写在同一行,我没有得到 SyntaxError。这是代码:
_URL_RE = re.compile(ur'''\b((?:([\w-]+):(/{1,3})|www[.])(?:(?:(?:[^\s&()]|&|")*(?:[^!"#$%&'()*+,.:;<=>?@\[\]^`{|}~\s]))|(?:\((?:[^\s&()]|&|")*\)))+)''')
问题似乎是“ [^\s&()] ”,但只有第二个,而不是第一个。如果您仔细查看代码,您会发现同样的事情出现了两次,但我只在第二次出现时得到了 SyntaxError。请有人启发我。几天来,我一直在尝试为 Python 寻找一个体面的 BBCode 解析器,我相信这是我可以根据自己的需要进行修改的解析器。我似乎无法让bbcode像我想要的那样工作,所以我正在尝试这个。
解决方案
好吧,Python 3.4 及更高版本不支持“UR”前缀。
您需要使用 Python 2.7 执行代码,或更改为:
_URL_RE = re.compile(r'''\b((?:([\w-]+):(/{1,3})|www[.])(?:(?:(?:[^\s&()]|&|")*(?:[^!"#$%&'()*+,.:;<=>?@\[\]^`{|}~\s]))|(?:\((?:[^\s&()]|&|")*\)))+)''')
注意:考虑避免使用三引号字符串,因为如果插入换行符,它会改变正则表达式的含义(除非它是在 VERBOSE 模式下编译的)。
推荐阅读
- azure - 部署到 Azure 后获取 404
- node.js - 无服务器 - 在配置或代码中单独的 api 处理程序?
- javascript - 使用存储查找字符串的数组和存储替换字符串的数组替换文件中的字符串
- android - 如何使用 navigateUp 关闭应用程序
- python - 当网站上的产品被覆盖层隐藏时,如何获取它们的名称?
- scala - 为什么 val 声明不遵循 scala 常量命名约定?
- javascript - 检查是点击或悬停事件 - jQuery
- css - 如何使整个数据表行成为有角度的材质按钮
- knex.js - `knex.js` 播种时违反外键约束
- java - 获取 java.sql.SQLFeatureNotSupportedException:不支持的功能:checkValidIndex 异常