declaremodule'api/*'{exportconstgetPaperInfo:any;}这段代码如何使用正则表达式表达,花括号中的值可以为任意值
2 回答

温温酱
TA贡献1752条经验 获得超4个赞
因为js正则好像不能连续行的匹配,所以先去掉换行符,再处理varstr=`declaremodule'api/*'{exportconstgetPaperInfo:any;}`;//改为单行字符串str=str.replace(/\n/mg,'');//正则匹配varmatch_array=str.match(/declaremodule\'api\/\*\'{(.*?)}/);console.log(match_array[1]);结果:"exportconstgetPaperInfo:any;"

阿晨1998
TA贡献2037条经验 获得超6个赞
单纯一个正则表达式目测无解,或者会超级复杂。因为要界定结尾的}是异常困难的,因为你不知道花括号里面到底有没有}字符,或者花括号里面存在字符串里面有任意多的}字符。举个例子declaremodule'api/*'{if(1){while(1){try{str="}}}}}}}}}}}}}"//如果是任意内容,唯有按语法进行解析才是正道,一个正则想搞定,门都没有~}}}}
添加回答
举报
0/150
提交
取消