如何搜索圆括号内的特定内容并将其放入组中?
How to search for specific content inside round bracktes and put it into a group?
我想更新大约 3000 个 sql 脚本,其中我有这个
ALTER TABLE `database_name`.`table_name`
ADD INDEX `index_name` (`column_name` ASC); /* or DESC */
或这个
ALTER TABLE `database_name`.`table_name` ADD INDEX `index_name` (`column_name` ASC); /* or DESC */
我正在使用 Notepad++ 并想用一个过程替换这两种情况。首先,这是我迄今为止尝试找到这两种情况的方法
ALTER TABLE `?(.*)`?.`?(.*)`? ADD INDEX `?(.*)`? \([^\),]+\);
目前我遗漏了多行的情况。我不确定在哪里检查多行,在 ADD
之前添加 \n
时不会有任何命中。
程序将永远
CALL my_proc('database_name', 'table_name', 'column_name', 'index_name');
这是我到目前为止尝试替换它的方法
CALL my_proc(, , ..., );
不幸的是,我不知道 ...
使用的正确模式我基本上想说:只从圆括号内的内容中提取列名。
我如何修改我的搜索正则表达式以处理多行并将 column_name
放入第四组以便我可以使用这个
CALL my_proc(, , , );
根据你的工作,你可以试试:
ALTER TABLE `?([^.`]+)`?.`?([^.`]+)`?(?: | ?\n| ?\r\n)ADD INDEX `?([^.`]+)`? \(`?([^.`]+)`.*\);
并替换为:
CALL my_proc\(``, ``, ``, ``\);
关于正则表达式的解释:
`?([^.`]+)`?
表示:
- 零个或一个反引号
- 除了
.
或反引号之外的任何其他捕获组一次或无限次
- 零个或一个反引号
然后是.
然后是相同的模式
(?: | ?\n| ?\r\n)
表示非捕获组,带有 space 或零或一个 space 后跟 Unix 换行符或零或一个 space 后跟 Windows 换行
- 等等
替换说明:括号必须转义,并且根据您所做的,必须手动添加反引号
我想更新大约 3000 个 sql 脚本,其中我有这个
ALTER TABLE `database_name`.`table_name`
ADD INDEX `index_name` (`column_name` ASC); /* or DESC */
或这个
ALTER TABLE `database_name`.`table_name` ADD INDEX `index_name` (`column_name` ASC); /* or DESC */
我正在使用 Notepad++ 并想用一个过程替换这两种情况。首先,这是我迄今为止尝试找到这两种情况的方法
ALTER TABLE `?(.*)`?.`?(.*)`? ADD INDEX `?(.*)`? \([^\),]+\);
目前我遗漏了多行的情况。我不确定在哪里检查多行,在 ADD
之前添加 \n
时不会有任何命中。
程序将永远
CALL my_proc('database_name', 'table_name', 'column_name', 'index_name');
这是我到目前为止尝试替换它的方法
CALL my_proc(, , ..., );
不幸的是,我不知道 ...
使用的正确模式我基本上想说:只从圆括号内的内容中提取列名。
我如何修改我的搜索正则表达式以处理多行并将 column_name
放入第四组以便我可以使用这个
CALL my_proc(, , , );
根据你的工作,你可以试试:
ALTER TABLE `?([^.`]+)`?.`?([^.`]+)`?(?: | ?\n| ?\r\n)ADD INDEX `?([^.`]+)`? \(`?([^.`]+)`.*\);
并替换为:
CALL my_proc\(``, ``, ``, ``\);
关于正则表达式的解释:
`?([^.`]+)`?
表示:
- 零个或一个反引号
- 除了
.
或反引号之外的任何其他捕获组一次或无限次 - 零个或一个反引号
然后是.
然后是相同的模式
(?: | ?\n| ?\r\n)
表示非捕获组,带有 space 或零或一个 space 后跟 Unix 换行符或零或一个 space 后跟 Windows 换行- 等等
替换说明:括号必须转义,并且根据您所做的,必须手动添加反引号