为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

幕布斯7119047 2019-07-09 13:28:42
不能用正则表达式逃避反斜杠吗?我使用以下正则表达式^[a-zA-Z0-9\',!;\?\$\^:\\\/`\|~&\" @#%\*\{}\(\)_\+\.\s=-]{1,1000}$我知道它很难看,但到目前为止,它起了它的作用,除了反斜杠不能像我想的那样被允许,因为它逃脱了,我也试过了。\\而不是\\\但结果一样。有什么想法吗?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

如果要将其放入程序中的字符串中,则可能实际上需要使用四个反斜杠(因为字符串解析器将在“反转义”时将其中两个反斜杠移除。,然后regex需要两个才能得到转义的regex反斜杠)。

例如:

regex("\\\\")

被解释为.。

regex("\\" [escaped backslash] followed by "\\" [escaped backslash])

被解释为.。

regex(\\)

被解释为匹配单个反斜杠的正则表达式。


根据语言的不同,您可能可以使用另一种不解析转义序列的引用形式,以避免大量使用-例如,在Python中:

re.compile(r'\\')

这个r在引号前把它变成一个不解析反斜杠的字符串转义。


查看完整回答
反对 回复 2019-07-09
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

如果这不是文字,你必须使用\\\\这样你就能得到\\这意味着一个逃跑的反斜杠。

那是因为有两个表示法。在正则表达式的字符串表示中,"\\\\",这就是发送给解析器的内容。解析器将看到\\它将其解释为有效的转义反斜杠(与单个反斜杠匹配)。


查看完整回答
反对 回复 2019-07-09
  • 3 回答
  • 0 关注
  • 759 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信