我正在尝试使用正则表达式进行搜索并使用perl替换我想在JOB INPUT行和SQL OPEN行之间插入SQL连接语句。以下是输入的模式
JOB INPUT NULL
SQL OPEN CURSOR
JOB INPUT RANKEY
KEY1 = KEY2
SQL OPEN CURSOR
JOB INPUT RANKEY
KEY1 = KEY2
KEY3 = KEY3
SQL OPEN CURSOR
必须将其更改为以下
JOB INPUT NULL
SQL使用PAS-WD连接到数据库用户ID
SQL OPEN CURSOR
JOB INPUT RANKEY
KEY1 = KEY2
SQL使用PAS-WD连接到数据库用户ID
SQL OPEN CURSOR
JOB INPUT RANKEY
KEY1 = KEY2
KEY3 = KEY3
SQL使用PAS-WD连接到数据库用户ID
SQL OPEN CURSOR
我使用了以下正则表达式
( s{^(\s*job\s+input.*\n?.*?)}{$1\n$sql_connect\n}im )
$ sql_connect的值为“SQL CONNECT TO DATABASE USER USER-ID using PAS-WD”
我得到以下结果
JOB INPUT NULL
SQL使用PAS-WD连接到数据库用户ID
SQL OPEN CURSOR
JOB INPUT RANKEY
SQL使用PAS-WD连接到数据库用户ID
KEY1 = KEY2
SQL OPEN CURSOR
JOB INPUT RANKEY
SQL使用PAS-WD连接到数据库用户ID
KEY1 = KEY2
KEY3 = KEY3
SQL OPEN CURSOR
我可以通过正则表达式来完成吗?
答案 0 :(得分:0)
您可以尝试以下方法:
s{^(\s*job\s+input.*?)^(\s*sql\s+open.*?\n)}{$1$sql_connect\n$2}imsg
这似乎对我有用。