繁体   English   中英

如何获取JavaScript以匹配包含变量并跨越多行的正则表达式?

[英]How to get JavaScript to match a regex containing variables and spanning multiple lines?

如何获取JavaScript以匹配包含变量并跨越多行的正则表达式?

我正在尝试通过匹配模式从文本主体中提取字符串数据,在这些模式中,我知道要搜索的字符串以传递给例程的某些字符串开头和结尾。 以下是例程的核心:

var aHits = strIn.match(new RegExp(preStr + "(.+?)" + postStr, ignoreCase + "g"));
// ignoreCase equals "i" or "", preStr is leading string, postStr is trailing

在可能的比赛包含换行符之前,此方法效果很好。 然后strIn.match()失败。

我试过使用"(.+?)""([\\\\\\s\\\\\\S])""((.|\\\\\\n|\\\\\\r)+?)"等分组策略。

我已经看到一些以“ s”结尾的字面正则表达式,用于执行此类操作。 变量可以添加到文字正则表达式中吗? 哪种模式是最好的,或者至少有效? 还是match方法本身拒绝使用换行符处理字符串? 我似乎在任何地方都找不到。

换行符包含在匹配字符串的(.+?)部分中,但是这有关系吗?

您快到了……点元字符与换行符不匹配,但是使用[\\\\\\s\\\\\\S]在正确的轨道上……您逃脱了太多次。 尝试这个:

var aHits = strIn.match(
    new RegExp(preStr + "([\\s\\S]+?)" + postStr, ignoreCase + "g"));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM