不能用正则表达式逃避反斜杠吗?

不能用正则表达式逃避反斜杠吗?

我使用以下正则表达式

^[a-zA-Z0-9\',!;\?\$\^:\\\/`\|~&\" @#%\*\{}\(\)_\+\.\s=-]{1,1000}$

我知道它很难看,但到目前为止,它起了它的作用,除了反斜杠不能像我想的那样被允许,因为它逃脱了,我也试过了。\\而不是\\\但结果一样。有什么想法吗?


幕布斯7119047
浏览 761回答 3
3回答

犯罪嫌疑人X

如果要将其放入程序中的字符串中,则可能实际上需要使用四个反斜杠(因为字符串解析器将在“反转义”时将其中两个反斜杠移除。弦,然后regex需要两个才能得到转义的regex反斜杠)。例如:regex("\\\\")被解释为.。regex("\\" [escaped backslash] followed by "\\" [escaped backslash])被解释为.。regex(\\)被解释为匹配单个反斜杠的正则表达式。根据语言的不同,您可能可以使用另一种不解析转义序列的引用形式,以避免大量使用-例如,在Python中:re.compile(r'\\')这个r在引号前把它变成一个生不解析反斜杠的字符串转义。

守着星空守着你

如果这不是文字,你必须使用\\\\这样你就能得到\\这意味着一个逃跑的反斜杠。那是因为有两个表示法。在正则表达式的字符串表示中,"\\\\",这就是发送给解析器的内容。解析器将看到\\它将其解释为有效的转义反斜杠(与单个反斜杠匹配)。
打开App,查看更多内容
随时随地看视频慕课网APP