如何使用正则表达式搜索文本

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)

以下正则表达式可以替换 SQL Server Management Studio“查找和替换”对话框的“查找内容”字段中的字符或数字。

先决条件

如何启用正则表达式

以下是在搜索中启用正则表达式的步骤。

  1. 转到“编辑”>“查找和替换>“快速查找”
  2. 在搜索栏旁边,选择“向下箭头”>“在文件中查找”
  3. 在“查找和替换”窗口中,展开“查找选项”,然后选择“使用正则表达式”

“查找内容”字段旁边的“表达式生成器”按钮将变为可用状态。 选择此按钮可显示一组可用的正则表达式。 选择“表达式生成器”中的某个项后,该项会插入“查找内容”字符串中。

下表对“表达式生成器”中提供的正则表达式进行了说明。

表达式 说明
. 与任何单个字符匹配(换行符除外)。
.* 零次或多次匹配任何字符
.+ 一次或多次匹配任何字符
[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 中的正则表达式