我正在使用以下正则表达式
^[a-zA-Z0-9\',!;\?\$\^:\\\/`\|~&\" @#%\*\{}\(\)_\+\.\s=-]{1,1000}$
我知道它很丑陋,但是到目前为止,它已经达到了它的目的,除了我认为应该禁止反斜杠,因为它已经被转义了,我也尝试了
\\
而不是\\\
,但是结果相同。有任何想法吗?
最佳答案
如果将其放在程序中的字符串中,则实际上可能需要使用四个反斜杠(因为在将字符串“转义”时,字符串解析器会删除其中的两个,而正则表达式需要两个反斜杠)。转义的正则表达式反斜杠)。
例如:
regex("\\\\")
被解释为...
regex("\\" [escaped backslash] followed by "\\" [escaped backslash])
被解释为...
regex(\\)
被解释为与单个反斜杠匹配的正则表达式。
根据语言的不同,您可能可以使用不解析转义序列的另一种形式的引号,以避免不得不使用多个引号-例如,在Python中:
re.compile(r'\\')
引号前面的
r
使其成为未解析反斜杠转义符的原始字符串。
关于regex - 使用正则表达式无法逃脱反斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63714908/