如何使用正则表达式搜索文本
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)
以下正则表达式可以替换 SQL Server Management Studio“查找和替换”对话框的“查找内容”字段中的字符或数字。
先决条件
如何启用正则表达式
以下是在搜索中启用正则表达式的步骤。
- 转到“编辑”>“查找和替换>“快速查找”。
- 在搜索栏旁边,选择“向下箭头”>“在文件中查找”。
- 在“查找和替换”窗口中,展开“查找选项”,然后选择“使用正则表达式”。
“查找内容”字段旁边的“表达式生成器”按钮将变为可用状态。 选择此按钮可显示一组可用的正则表达式。 选择“表达式生成器”中的某个项后,该项会插入“查找内容”字符串中。
下表对“表达式生成器”中提供的正则表达式进行了说明。
表达式 | 说明 |
---|---|
. |
与任何单个字符匹配(换行符除外)。 |
.* |
零次或多次匹配任何字符 |
.+ |
一次或多次匹配任何字符 |
[abc] |
匹配 abc 集中的任何字符 |
[^abc] |
匹配不在 abc 集中的任何字符 |
\d |
匹配任意数字字符 |
(?([^\r\n])\s) |
与任何空格字符匹配 |
\b |
在单词的开头或结尾匹配 |
^ |
在行首匹配 |
.$ |
匹配任何换行符 |
\w\r?\n |
匹配行尾的单词字符 |
(dog | cat) |
捕获表达式 dog | cat 并对其进行隐式编号 |
(?<pet>dog | cat) |
捕获子表达式 dog | cat 并将其命名为 pet |
示例
一些使用正则表达式的示例。
示例 1:查找所有 Select 语句
想要找出 SQL 脚本中的所有 SELECT 语句。
SELECT\s+.*\s+FROM
示例 1 的说明
- SELECT\s+:匹配单词“SELECT”,后跟一个或多个空格字符。
- .*:匹配任何字符(行终止符除外)零次或多次。
- \s+FROM:匹配一个或多个空格字符,后跟单词“FROM”。
示例 2:查找具有特定命名模式的过程
要在 SQL 脚本中找到以“usp_”开头的所有存储过程。
CREATE\s+PROCEDURE\s+usp_[A-Za-z0-9_]+
示例 2 的说明
- CREATE\s+PROCEDURE\s+:匹配单词“CREATE PROCEDURE”,后跟一个或多个空格字符。
- usp_:匹配文本字符串“usp_”。
- [A-Za-z0-9_]+:匹配一个或多个字母数字字符或下划线。
示例 3:在 SQL 脚本中查找注释
想要在 SQL 脚本中识别所有单行注释(以 -- 开头)。
--.*
示例 3 的说明
- --:匹配文本字符串“--”。
- .*:匹配任何字符(行终止符除外)零次或多次。
示例 4:查找所有更新语句
想要找出 SQL 脚本中的所有 UPDATE 语句。
UPDATE\s+.*\s+SET
示例 4 的说明
- UPDATE\s+:匹配单词“UPDATE”,后跟一个或多个空格字符。
- .*:匹配任何字符(行终止符除外)零次或多次。
- \s+SET:匹配一个或多个空格字符,后跟单词“SET”。
示例 5:在 DDL 语句中查找表单名称
想要从 SQL 脚本中的 CREATE TABLE 语句中提取表单名称。
CREATE\s+TABLE\s+(\w+)
示例 5 的说明
- CREATE\s+TABLE\s+:匹配单词“CREATE TABLE”,后跟一个或多个空格字符。
- (\w+):匹配一个或多个单词字符(字母数字和下划线),并捕获它们以进行提取。
有关更多示例,请参阅 Visual Studio 中的正则表达式