В настоящее время у меня есть такая формула:
(var file = '(.*?)';|var e = "(.*?)")
Пытаюсь найти все между var file = ' и ';. ИЛИ Все, что находится между var e = " и ".
Я использую | для операции «ИЛИ». Но когда я выполняю формулу для любого из двух разделов данных ниже, она возвращает: «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")}});
Можем ли мы увидеть код, который вы используете для запуска регулярного выражения?
Звездочка в исходном комментарии превратилась в курсив. Я обновил формулу. В настоящее время я запускаю это через Screaming Frog как пользовательское извлечение Regex.
ах, думаю, я понимаю, что происходит. Ваша программа пытается распечатать все 3 группы захвата, которые у вас есть (каждый набор круглых скобок представляет собой группу). Вот почему он печатает null, только одна из групп имеет текст в ней. Попробуй что нибудь вроде этого (var file = '.*?';|var e = ".*?")
Какой механизм регулярных выражений (программу) вы используете?
Катамари пока самый близкий. Он тянется как: var file = 'home.json'; Есть ли способ получить только home.json?
Вы проверили Вот этот?





Я изменил ваше регулярное выражение, чтобы поддерживать как одинарные, так и двойные кавычки. Используя следующее регулярное выражение, вы можете получить полное совпадение, а также содержимое между кавычками:
/var (?:file = |e=)['\"]([^'\"]*?)['\"]/
Регулярное выражение начинает сопоставление с 'var', за которым следует 'file =' или 'e =', за которым следует кавычка, затем сопоставляет все, что не является кавычкой (не жадное), и, наконец, цитатой.
Он делает это как для «var file», так и для «var e».
Чтобы получить содержимое между кавычками, вы используете группу 1.
хорошо, я могу вам сказать, что
(.?)будет содержать только 0 или 1 символ. Я думаю, вы можете использовать+, который обозначает 1 или более