使用正则表达式查找文件中行开头的单词
Using Regex to get a find a word at the beginning of a line in a file
我需要做的是找到sql脚本文件中每行开头出现的单词"prompt"。例如,在这些sql脚本中,我们将在每行开头出现1到多次"prompt"这个词。我需要拉这些"提示"字与正则表达式,但没有拉字"提示"从其他地方它可能发生在sql脚本。谢谢你的帮助
下面是一个脚本的示例:
SET SERVEROUTPUT ON FORMAT WORD_WRAPPED
CL SCR
undef database_service
SET trimspool ON
set linesize 1000
COLUMN LATEST_PROCESS_DATE NEW_VALUE LATEST_DATE
SELECT to_char(SYSDATE, 'yyyymmddhh24miss') LATEST_PROCESS_DATE FROM dual;
spool ..'log'R_AssetMgmtITDB_EntitlementTestPrompt_Oracle_1.0_&latest_date..lst
prompt
prompt LOGIN TO entitlement(DB => toolit - IT, tooluat - PCU, toolprd - PROD)
prompt
conn entitlement@&&database_service
show user
prompt database_name IS &&database_service
prompt
@schema'DML'insert_amportal_entitlements_entitlementTestPrompt.sql
undef database_service
undef userid
undef response
prompt end of R_AssetMgmtITDB_EntitlementTestPrompt_Oracle_1.0
"'nprompt "也可以使用
您可以在多行模式下使用正则表达式/^prompt'b/i
,也可以在新行上分割字符串:
拆分字符串可以得到该单词出现的行号:
var string = "SET SERVEROUTPUT ON FORMAT WORD_WRAPPED'nCL SCR'nundef database_service'nSET trimspool ON'nset linesize 1000'nCOLUMN LATEST_PROCESS_DATE NEW_VALUE LATEST_DATE'nSELECT to_char(SYSDATE, 'yyyymmddhh24miss') LATEST_PROCESS_DATE FROM dual;'nspool ..'log'R_AssetMgmtITDB_EntitlementTestPrompt_Oracle_1.0_&latest_date..lst'nprompt'nprompt LOGIN TO entitlement(DB => toolit - IT, tooluat - PCU, toolprd - PROD)'nprompt'nconn entitlement@&&database_service'nshow user'nprompt database_name IS &&database_service'nprompt'n@schema'DML'insert_amportal_entitlements_entitlementTestPrompt.sql'nundef database_service'nundef userid'nundef response'nprompt end of R_AssetMgmtITDB_EntitlementTestPrompt_Oracle_1.0";
var answer =
string.split(''n')
.map(function(v, i) { return { lineNumber: i, value: v }; })
.filter(function(v) { return /^prompt'b/i.test(v.value); });
document.getElementById("out").innerHTML = JSON.stringify( answer );
<p id="out"></p>
仅使用正则表达式也可以为您提供匹配:
var string = "SET SERVEROUTPUT ON FORMAT WORD_WRAPPED'nCL SCR'nundef database_service'nSET trimspool ON'nset linesize 1000'nCOLUMN LATEST_PROCESS_DATE NEW_VALUE LATEST_DATE'nSELECT to_char(SYSDATE, 'yyyymmddhh24miss') LATEST_PROCESS_DATE FROM dual;'nspool ..'log'R_AssetMgmtITDB_EntitlementTestPrompt_Oracle_1.0_&latest_date..lst'nprompt'nprompt LOGIN TO entitlement(DB => toolit - IT, tooluat - PCU, toolprd - PROD)'nprompt'nconn entitlement@&&database_service'nshow user'nprompt database_name IS &&database_service'nprompt'n@schema'DML'insert_amportal_entitlements_entitlementTestPrompt.sql'nundef database_service'nundef userid'nundef response'nprompt end of R_AssetMgmtITDB_EntitlementTestPrompt_Oracle_1.0";
var re = /^prompt'b/gim;
var answer = string.match( re );
document.getElementById( "out" ).innerHTML = JSON.stringify( answer );
<p id="out"/>
相关文章:
- 将组成单词的字符添加到数组的开头
- 匹配由单个空格分隔的单词,单词的开头或结尾不能有空格
- 如何在搜索框中获取从特定字母开头的单词
- 如何使用 JavaScript 获取所有以单词开头的 cookie
- 如何将有角度的文本区域设置为仅以特定单词开头
- Regex,替换所有以@开头的单词
- Javascript正则表达式匹配多个单词中至少一个以数字开头的单词,但至少匹配两个单词
- 如何隐藏所有以相同单词开头的 DIV,但一个具有特定值的 DIV 除外
- 替换以下划线开头的单词
- 正则表达式保留/匹配任何以特定字符开头的单词
- 获取以@开头的单词,例如正则表达式和javascript提到的Facebook
- JavaScript单词搜索,从单词的开头开始带空格和不带空格
- JavaScript正则表达式搜索每个单词和后续单词的开头
- 以相同元音字母开头和结尾的匹配单词
- 在开头或结尾使用特殊字符匹配单词
- 在 HTML 5 表单中每个单词的开头添加一个井号标签 (#)
- 提取 php 字符串中以 $ 开头的单词
- 如何在javascript中用一个特殊字符开头的单词内的空格替换下划线
- Javascript/REGEX:删除字符串中以特定字母开头的特定文本(单词),单词之间用空格分隔
- 只允许HTML字段以某些单词开头