首页 > 解决方案 > 带有正则表达式的 SQL 过程中的两个反斜杠

问题描述

我正在处理一个 SQL 过程,在该过程中我遇到了一个包含这块的正则表达式 -

REGEXP '\\s*count\\s*\\('

我不明白为什么有两个反斜杠?可以从这段代码中推断出什么。

标签: mysqlescapingregexp-like

解决方案


反斜杠在多个级别进行处理。

它是正则表达式中的转义前缀:它使特殊字符 like.并按(字面意思对待,并用于创建类似的转义序列\s(这意味着任何空白字符)。

但它也是字符串文字中的转义前缀,用于\n(换行符)和\b(退格)之类的东西。因此,为了使正则表达式字符获得文字反斜杠,您需要转义反斜杠本身。

这在许多编程语言中很常见,尽管有些语言具有不处理转义序列的“原始字符串文字”,特别是为了避免将斜杠加倍。


推荐阅读