我将如何采用以下正则表达式:
re.compile(r'(\'?(("(\"|[^"])*")|^#.*\n|;.*\n|\(|\)|-?[0-9]+(\.[0-9]+)?|[a-zA-Z-#][a-zA-Z0-9.+-/\!]*))|\'.*')
并将其写入多行?
无论出于何种原因,我尝试使用re.VERBOSE
似乎都会改变表达式的值。
答案 0 :(得分:0)
如果你把两个字符串放在一起,它们之间只有空格,那么python解释器会将它们连接起来
re.compile(r'(\'?(("(\"|[^"])")|^#.\n|;.\n|(|)|-?[0-9]+(.[0-9]+)?|'
r'[a-zA-Z-#][a-zA-Z0-9.+-/!]))|\'.*')
答案 1 :(得分:0)
将正则表达式转换为re.VERBOSE
模式时,请确保:
\s
或[ ]
或'\ '
(由于SO格式化,我必须将''
放在此处。
使用re.VERBOSE
忽略所有普通空格。#
以相同的方式进行转义或替换:\#
等。
哈希用re.VERBOSE
作为评论方式。然后你可以使用python的多行字符串重写你的正则表达式:
import re
re.compile(r'''
(\'?(("(\"|[^"])*")
|^\#.*\n
|;.*\n
|\(
|\)
|-?[0-9]+(\.[0-9]+)?
|[a-zA-Z-#][a-zA-Z0-9.+-/\!]*
)
)
|\'.*
''', re.VERBOSE)