重新编译给出错误不平衡括号
RE Compile giving error unbalanced parenthesis
import re
import os
re_filename = re.compile(
r"^(?:.*" + os.sep + r")?" +
r"([^@]*?)" +
r"(?:@([^.]*?))?" +
r"(?:\.yang|\.yin)*" +
r"\.(yang|yin)$")
回溯(最近调用最后):
文件“”,第 6 行,位于
编译中的文件“C:\Python27\lib\re.py”,第 190 行
return_compile(模式,标志)
_compile 中的文件“C:\Python27\lib\re.py”,第 242 行
引发错误,v
sre_constants.error: 括号不平衡
当 os.sep
是反斜杠时,它会转义其后的结束“)”,因此您没有捕获组含义中的结束括号,而是文字“) ".
因此请确保 os.sep
字符是按字面意思理解的:
import re
import os
re_filename = re.compile(
r"^(?:.*" + re.escape(os.sep) + r")?" +
r"([^@]*?)" +
r"(?:@([^.]*?))?" +
r"(?:\.yang|\.yin)*" +
r"\.(yang|yin)$")
import re
import os
re_filename = re.compile(
r"^(?:.*" + os.sep + r")?" +
r"([^@]*?)" +
r"(?:@([^.]*?))?" +
r"(?:\.yang|\.yin)*" +
r"\.(yang|yin)$")
回溯(最近调用最后): 文件“”,第 6 行,位于 编译中的文件“C:\Python27\lib\re.py”,第 190 行 return_compile(模式,标志) _compile 中的文件“C:\Python27\lib\re.py”,第 242 行 引发错误,v sre_constants.error: 括号不平衡
当 os.sep
是反斜杠时,它会转义其后的结束“)”,因此您没有捕获组含义中的结束括号,而是文字“) ".
因此请确保 os.sep
字符是按字面意思理解的:
import re
import os
re_filename = re.compile(
r"^(?:.*" + re.escape(os.sep) + r")?" +
r"([^@]*?)" +
r"(?:@([^.]*?))?" +
r"(?:\.yang|\.yin)*" +
r"\.(yang|yin)$")