2024-04-20 10:57:43 发布
网友
我在用下面的正则表达式
^[a-zA-Z0-9\',!;\?\$\^:\\\/`\|~&\" @#%\*\{}\(\)_\+\.\s=-]{1,1000}$
我知道它很难看,但到目前为止,它的作用并不像我认为应该的那样是反斜杠,因为它是转义的,所以我也尝试了\\,而不是\\\,但结果是一样的。有什么想法吗?
\\
\\\
反斜杠\是正则表达式的转义字符。因此,双反斜杠实际上意味着单反斜杠。
\
\ (backslash) followed by any of [\^$.|?*+(){} escapes the special character to suppress its special meaning.
参考号:http://www.regular-expressions.info/reference.html
如果将其放入程序中的一个字符串中,实际上可能需要使用四个反斜杠(因为当为字符串对其进行“反转义”时,字符串解析器将删除其中的两个,然后正则表达式需要两个反斜杠进行转义)。
例如:
regex("\\\\")
被解释为。。。
regex("\\" [escaped backslash] followed by "\\" [escaped backslash])
regex(\\)
被解释为与单个反斜杠匹配的正则表达式。
根据语言的不同,您可能可以使用不同形式的引号,不解析转义序列,以避免使用相同数量的引号—例如,在Python中:
re.compile(r'\\')
引号前面的r使它成为一个不解析反斜杠转义的raw字符串。
r
如果不是文本,则必须使用\\\\,这样就可以得到\\,这意味着一个转义反斜杠。
\\\\
那是因为有两种说法。在regex的字符串表示中,有"\\\\",这就是发送给解析器的内容。解析器将看到\\,它将其解释为有效的转义反斜杠(与单个反斜杠匹配)。
"\\\\"
反斜杠
\
是正则表达式的转义字符。因此,双反斜杠实际上意味着单反斜杠。\ (backslash) followed by any of [\^$.|?*+(){} escapes the special character to suppress its special meaning.
参考号:http://www.regular-expressions.info/reference.html
如果将其放入程序中的一个字符串中,实际上可能需要使用四个反斜杠(因为当为字符串对其进行“反转义”时,字符串解析器将删除其中的两个,然后正则表达式需要两个反斜杠进行转义)。
例如:
被解释为。。。
被解释为。。。
被解释为与单个反斜杠匹配的正则表达式。
根据语言的不同,您可能可以使用不同形式的引号,不解析转义序列,以避免使用相同数量的引号—例如,在Python中:
引号前面的
r
使它成为一个不解析反斜杠转义的raw字符串。如果不是文本,则必须使用
\\\\
,这样就可以得到\\
,这意味着一个转义反斜杠。那是因为有两种说法。在regex的字符串表示中,有
"\\\\"
,这就是发送给解析器的内容。解析器将看到\\
,它将其解释为有效的转义反斜杠(与单个反斜杠匹配)。相关问题 更多 >
编程相关推荐