Python 将长行代码转换为多行(SyntaxError:行连续字符后出现意外字符)

Python 将长行代码转换为多行(SyntaxError:行连续字符后出现意外字符),python,python-3.x,Python,Python 3.x,蟒蛇3.5 正则表达式 Monat_pattern = r"(?P<Monat>[A-Z][a-z][a-z])" Tag_pattern = r"(?P<Tag>\d\d)" Uhrzeit_pattern = r"(?P<Uhrzeit>\d\d:\d\d:\d\d)" Servername_pattern = r"(?P<Servername>[\w|\.]*)" ServerID_pattern = r"(?P<ServerID>

蟒蛇3.5

正则表达式

Monat_pattern = r"(?P<Monat>[A-Z][a-z][a-z])"
Tag_pattern = r"(?P<Tag>\d\d)"
Uhrzeit_pattern = r"(?P<Uhrzeit>\d\d:\d\d:\d\d)"
Servername_pattern = r"(?P<Servername>[\w|\.]*)"
ServerID_pattern = r"(?P<ServerID>\w*\[\d*\]:\s\w*)"
如果字符串中有“\”,我需要使用“\”进行连接

我得到一个错误:

  File "<ipython-input-115-1ca2b20ef199>", line 1
    pattern = Monat_pattern + r"\s*" +\          Tag_pattern + r"\s*" +\          Uhrzeit_pattern + r"\s*" +\          Servername_pattern + r"\s*"+\\
                                                                                                                                                      ^
SyntaxError: unexpected character after line continuation character
文件“”,第1行
pattern=Monat\u pattern+r“\s*”+\Tag\u pattern+r”\s*“+\Uhrzeit\u pattern+r”\s*“+\Servername\u pattern+r”\s*”+\\
^
SyntaxError:行连续字符后出现意外字符
您只能使用一个反斜杠:

pattern = Monat_pattern + r"\s*" +\
          Tag_pattern + r"\s*" +\
          Uhrzeit_pattern + r"\s*" +\
          Servername_pattern + r"\s*"+\
          ServerID_pattern + r"\s*"
您的实际代码在其中一个双反斜杠之后还包含一个空格,反斜杠必须是换行符之前的最后一个字符

您最好使用
(…)
括号来扩展逻辑行,但是:

pattern = (
    Monat_pattern + r"\s*" +
    Tag_pattern + r"\s*" +
    Uhrzeit_pattern + r"\s*" +
    Servername_pattern + r"\s*"+
    ServerID_pattern + r"\s*")
您可以在此处使用
str.join()

pattern = r"\s*".join([
    Monat_pattern, Tag_pattern, Uhrzeit_pattern,
    Servername_pattern, ServerID_pattern, ''])
尾随的
'
确保在
ServerID\u模式
字符串之后使用额外的
\s*

您将只使用一个反斜杠:

pattern = Monat_pattern + r"\s*" +\
          Tag_pattern + r"\s*" +\
          Uhrzeit_pattern + r"\s*" +\
          Servername_pattern + r"\s*"+\
          ServerID_pattern + r"\s*"
您的实际代码在其中一个双反斜杠之后还包含一个空格,反斜杠必须是换行符之前的最后一个字符

您最好使用
(…)
括号来扩展逻辑行,但是:

pattern = (
    Monat_pattern + r"\s*" +
    Tag_pattern + r"\s*" +
    Uhrzeit_pattern + r"\s*" +
    Servername_pattern + r"\s*"+
    ServerID_pattern + r"\s*")
您可以在此处使用
str.join()

pattern = r"\s*".join([
    Monat_pattern, Tag_pattern, Uhrzeit_pattern,
    Servername_pattern, ServerID_pattern, ''])

尾随的
'
确保在
ServerID\u模式
字符串之后使用额外的
\s*

为什么要使用双反斜杠?您只需要一个。不需要在字符串文本之外转义反斜杠。您可能需要尝试自动格式化code@titus:autopep8犯了太多不合我口味的错误。你为什么用双反斜杠?您只需要一个。不需要在字符串文本之外转义反斜杠。您可能需要尝试自动格式化code@titus:autopep8犯了太多不合我口味的错误。一个反斜杠和(…)给了我错误“SyntaxError:EOL而扫描字符串文字”@Hellolad:那是因为您的最后一个字符串缺少结尾
。我想知道是不是要指出这一点,或者这只是你问题中的一个打字错误。一个反斜杠和(…)会给我错误“SyntaxError:EOL while scanning string literal”@Hellolad:那是因为你的最后一个字符串缺少结尾
。我想知道是否要指出这一点,或者这只是你问题中的一个打字错误。