mysql - 带有正则表达式的 SQL 过程中的两个反斜杠
问题描述
我正在处理一个 SQL 过程,在该过程中我遇到了一个包含这块的正则表达式 -
REGEXP '\\s*count\\s*\\('
我不明白为什么有两个反斜杠?可以从这段代码中推断出什么。
解决方案
反斜杠在多个级别进行处理。
它是正则表达式中的转义前缀:它使特殊字符 like.
并按(
字面意思对待,并用于创建类似的转义序列\s
(这意味着任何空白字符)。
但它也是字符串文字中的转义前缀,用于\n
(换行符)和\b
(退格)之类的东西。因此,为了使正则表达式字符获得文字反斜杠,您需要转义反斜杠本身。
这在许多编程语言中很常见,尽管有些语言具有不处理转义序列的“原始字符串文字”,特别是为了避免将斜杠加倍。
推荐阅读
- javascript - 如何从 js 脚本文件中调用 laravel 路由?
- python - 从子字符串中提取的映射运算符
- data-structures - 数据结构的使用
- android - 从谷歌地图android中的可见区域获取邮政编码列表
- scala - 从镶木地板文件读取时出现异常
- php - 我可以在 laravel 的变量数据库中使用 2 foreach 吗?
- java-11 - 字符串到对象的转换 - 在 Java 11 中不起作用
- android-mediaplayer - 使用 Android Studio 的 MediaPlayer
- c# - SaveChangesAsync 方法不保存更改(环境问题)
- import - 如何在 Hybris 中回滚 impex 导入