[英]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.