Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式获取一个字符串,并在文件中的行首查找一个单词_Javascript_Regex - Fatal编程技术网

Javascript 使用正则表达式获取一个字符串,并在文件中的行首查找一个单词

Javascript 使用正则表达式获取一个字符串,并在文件中的行首查找一个单词,javascript,regex,Javascript,Regex,我需要做的是查找sql脚本文件中每一行开头出现的单词“prompt”。例如,在这些sql脚本中,每行开头都会出现1到多个单词“prompt”。我需要使用正则表达式提取这些“提示”字,但不需要从sql脚本中可能出现的任何地方提取“提示”字。谢谢你的帮助 下面是一个脚本的示例 SET SERVEROUTPUT ON FORMAT WORD_WRAPPED CL SCR undef database_service SET trimspool ON set linesize 1000 COLUMN L

我需要做的是查找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

“\nPompt”也可以使用。

您可以在多行模式下或通过在新行上拆分字符串来使用正则表达式
/^prompt\b/i

拆分字符串可以得到单词出现的行号:

var string=“设置服务器输出格式为WORD\u WRAPPED\nCL SCR\nundef database\u service\n设置Trimpool\n设置行大小1000\n列最新\u进程\u日期最新\u值最新\u日期\n选择字符(SYSDATE,'yyyymmddhh24miss')最新进程\u日期自双;\n工具..\log\R\u AssetMgmtITDB\u权限测试提示\u Oracle\u 1.0\uu最新日期..lst\npropt\n compt登录到权限(DB=>toolit-IT,toolouat-PCU,toolprd-PROD)\nprompt\n权限@&&database\u服务\n显示用户\nprompt database\u名称是&&database\u服务\nprompt\n@schema\DML\insert_amportal_authorities_authorithmentTestPrompt.sql\nundef database_service\nundef userid\nundef response\n R_AssetMgmtITDB_authorithmentTestPrompt_Oracle_1.0“;
变量回答=
string.split(“\n”)
.map(函数(v,i){return{lineNumber:i,value:v};})
.filter(函数(v){return/^prompt\b/i.test(v.value);});
document.getElementById(“out”).innerHTML=JSON.stringify(答案)

^prompt\b
,请在询问之前进行搜索。关于
提示,以及区分大小写如何?最好的方法是使用多行模式。在此模式下,
^
锚定表示行的开始,而不是字符串的开始。仍将匹配字符串的开头,因为它认为它只是另一行。这在正则表达式testerExcept中不适用于字符串的开头。