正则表达式或条件

时间:2018-10-03 19:05:59

标签: regex

目前我有这个公式:

(var file = '(.*?)';|var e="(.*?)")

我正在尝试查找var file = '';之间的所有内容。或var e=""之间的所有内容。

我将|用于OR条件。但是,当我为以下两个数据部分之一执行公式时,它最终返回:“ home.jsonnull”或“ nullhcp-home”。 我不想要空值。

我正在Screaming Frog上使用自定义正则表达式提取来爬网该网站:https://hcp.eylea.us。我希望它返回hcp-home。

潜在数据1:

$(document).ready(function () {
    var file = 'home.json';
    if (file !== undefined && file.length > 0) {
        var fullFile = '/Content/json-schema/' + file;
        $.get(fullFile, function (data, textStatus, jqxhr) {
            $('body').append(data);
        }, "text");

潜在数据2:

$(document).ready(function(){var e="hcp-home";if(e.length>0){$.get("/content/json-schema/"+e+".json",function(e,n,t){$("body").append(e)},"text")}});

1 个答案:

答案 0 :(得分:0)

我更改了您的正则表达式以支持单引号和双引号。使用以下正则表达式,您可以获取整个匹配项以及引号之间的内容:

/var (?:file = |e=)['\"]([^'\"]*?)['\"]/

正则表达式开始匹配'var',后跟'file ='或'e =',后跟引号,然后匹配所有不是引号的内容(非贪婪),最后匹配引号。 这样做是针对“ var file”和“ var e”。

要获取引号之间的内容,请使用第1组。