Python 在正则表达式上使用re.VERBOSE
我将如何使用以下正则表达式:Python 在正则表达式上使用re.VERBOSE,python,regex,Python,Regex,我将如何使用以下正则表达式: re.compile(r'(\'?(("(\"|[^"])*")|^#.*\n|;.*\n|\(|\)|-?[0-9]+(\.[0-9]+)?|[a-zA-Z-#][a-zA-Z0-9.+-/\!]*))|\'.*') 然后把它写在多行上 无论出于何种原因,我尝试使用re.VERBOSE似乎改变了表达式的值 如果将两个字符串放在一起,它们之间只有空格,那么python解释器将把它们连接起来 re.compile(r'(\'?(("(\"|[^"])")|^#.\n
re.compile(r'(\'?(("(\"|[^"])*")|^#.*\n|;.*\n|\(|\)|-?[0-9]+(\.[0-9]+)?|[a-zA-Z-#][a-zA-Z0-9.+-/\!]*))|\'.*')
然后把它写在多行上
无论出于何种原因,我尝试使用
re.VERBOSE
似乎改变了表达式的值 如果将两个字符串放在一起,它们之间只有空格,那么python解释器将把它们连接起来
re.compile(r'(\'?(("(\"|[^"])")|^#.\n|;.\n|(|)|-?[0-9]+(.[0-9]+)?|'
r'[a-zA-Z-#][a-zA-Z0-9.+-/!]))|\'.*')
将正则表达式转换为
re.VERBOSE
模式时,请确保:
- 空格被转义或替换为一些等价的:
或\s
或[]
(由于格式太过复杂,我不得不在这里加上'\'\'
)。 使用'
忽略所有纯空白re.VERBOSE
- 散列
的转义或替换方式相同:\
等。 散列作为注释方式使用\\
re.VERBOSE
import re
re.compile(r'''
(\'?(("(\"|[^"])*")
|^\#.*\n
|;.*\n
|\(
|\)
|-?[0-9]+(\.[0-9]+)?
|[a-zA-Z-#][a-zA-Z0-9.+-/\!]*
)
)
|\'.*
''', re.VERBOSE)
你应该标记你正在使用的语言啊!我的英雄!我的Python不稳定,但我之前也有同样的想法。不管出于什么原因,它都不起作用(可能是打字错误)。既然是你建议的,我想我会再试一次,但没用。但在那一点上,我很有信心它会起作用,所以我第三次尝试了同样的方法,结果成功了。我想这只是为了说明疲劳编码是糟糕的编码。