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

2024-04-23 08:58:56 发布

您现在位置:Python中文网/ 问答频道 /正文

Python3.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*)"

将它们连接起来:

pattern = Monat_pattern + r"\s*" +\\
          Tag_pattern + r"\s*" +\\
          Uhrzeit_pattern + r"\s*" +\\
          Servername_pattern + r"\s*"+\\ 
          ServerID_pattern + r"\s* 

如果字符串中有“\”,我需要使用“\”进行连接

我得到错误:

  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

Tags: 字符串inputtag错误ipythonlinefilepattern
1条回答
网友
1楼 · 发布于 2024-04-23 08:58:56

只能使用一个反斜杠:

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_pattern字符串后面使用额外的\s*。你知道吗

相关问题 更多 >