使用正则表达式+变量的正则表达式
RegExp using regex + variables
我知道在正则表达式中有很多关于变量的问题。例如:
- 以regexp模式连接变量 regexp 中的变量如何在regexp中正确转义字符
- 使用$和^ 正则表达式中的变量匹配字符串
不幸的是,它们都没有详细解释如何转义我的RegExp。
假设我想找到所有前面有这个字符串的文件:
file:///storage/sdcard0/
我试着用regex:
(?:file:'/'/'/storage'/sdcard0'(.*))(?:'"|'')
正确得到我的image1.jpg和image2.jpg在某些json文件。(尝试使用http://regex101.com/#javascript)
对于我的生命,我不能让这个工作在JS中。我知道你应该使用RegExp来解决这个问题,但我有问题。
var findStr = "file:///storage/sdcard0/";
var regex = "(?:"+ findStr +"(.*))(?:'"|'')";
var re = new RegExp(regex,"g");
var result = <mySearchStringVariable>.match(re);
有了这个,我得到1个结果,这是错误的(一堆文本)。我想我应该像网上所有人说的那样逃避这个……我试图用下面的两个函数来逃避findStr,结果是相同的。所以我想好吧,我也需要在正则表达式中转义一些字符。
我试图手动转义它们,结果不匹配。
我试图在将整个regex变量传递给RegExp构造函数之前转义它,结果是相同的:没有匹配。
function quote(regex) {
return regex.replace(/([()[{*+.$^''|?])/g, '''$1');
}
function escapeRegExp(str) {
return str.replace(/['-'[']'/'{'}'(')'*'+'?'.'''^'$'|]/g, "''$&");
}
我到底做错了什么?是否有关于如何写RegExp与变量在它好的文档?
我所需要做的就是使用LAZY而不是贪心
var regex = "(?:"+ findStr +"(.*?))(?:'"|'')"; // added ? in (.*?)
相关文章:
- 在正则表达式中使用变量
- Javascript 复杂的正则表达式与变量
- Jquery 替换所有文本语法正则表达式中的变量
- 用于比较 HTML 标记内的变量的正则表达式
- javascript中正则表达式(match)中变量的使用错误
- javascript正则表达式:使用单词边界将变量传递给regexp
- 使用正则表达式中的变量与$和^匹配字符串
- 正则表达式提取PHP中的JavaScript变量
- 调整 javascript 正则表达式以过滤来自 url 的变量
- 什么是用于断开变量可能包含“&”的查询字符串的正则表达式
- jQuery 验证器正则表达式使用数组或变量
- 使用变量中的 gi 标志创建正则表达式
- Javascript 正则表达式从句子中检索变量
- 正则表达式中的变量
- 在 javascript 的正则表达式中使用变量
- 添加另一个变量后,正则表达式替换不起作用
- JavaScript 正则表达式,用于获取以 @ 字符开头的字符串中的变量列表
- 仅与字母字符匹配的正则表达式变量
- 使用正则表达式+变量的正则表达式
- 使用正则表达式变量作为普通变量- Javascript