Регулярное выражение для выбора значения после «=»

Как я могу выбрать RQR-1BN6Q360090-0001 (без кавычек) с помощью регулярного выражения ниже -

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href = "/gaits/CreateReport.aspx?RptNum=RQR-1BN6Q360090-0001">here</a>.</h2>
</body></html>

I tried this but it does  not work
RptNum=([A-Za-z]+)$

Используйте /RptNum=([\w-]+)/

Wiktor Stribiżew 31.05.2019 00:56

Он возвращает RptNum=RQR-1BN6Q360090-0001, мне нужно RQR-1BN6Q360090-0001

Bokambo 31.05.2019 00:58

Нет, s.match(/RptNum=([\w-]+)/)[1] делает то, что вам нужно

Wiktor Stribiżew 31.05.2019 00:58

Спасибо, это работает

Bokambo 31.05.2019 01:00
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
4
50
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Здесь мы также можем использовать выражение, которое собирает новые строки, например:

[\s\S]*RptNum=(.+?)"[\s\S]*
[\w\W]*RptNum=(.+?)"[\w\W]*
[\d\D]*RptNum=(.+?)"[\d\D]*

и наш желаемый результат сохраняется в (.+?).

Тестовое задание

const regex = /[\s\S]*RptNum=(.+?)"[\s\S]*/gm;
const str = `<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href = "/gaits/CreateReport.aspx?RptNum=RQR-1BN6Q360090-0001">here</a>.</h2>
</body></html>`;
const subst = `$1`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.info(result);

Демо

регулярное выражение

Если это выражение не нужно, его можно модифицировать/изменить в regex101.com.

Цепь регулярных выражений

jex.im визуализирует регулярные выражения:

Ответ принят как подходящий

Вы можете использовать

/RptNum=([\w-]+)/

Шаблон будет соответствовать RptNum=, а затем зафиксирует 1 или более вхождений символов слова (букв, цифр и _) или дефисов. См. демонстрация регулярных выражений и график регулярных выражений:

Обратите внимание, что

/RptNum=([A-Z0-9-]+)/

может быть более ограничительным шаблоном, который тоже должен работать. Не соответствует _ и строчным буквам.

В JS используйте его с String#match() и возьмите второй элемент массива при совпадении:

var s = 'Object moved to <a href = "/gaits/CreateReport.aspx?RptNum=RQR-1BN6Q360090-0001">here</a>';
var m = s.match(/RptNum=([\w-]+)/);
if (m) {
  console.info(m[1]);
}

const text = 'RptNum=RQR-1BN6Q360090-0001';

console.info(text.match(/RptNum=.*/).map(m => m.match(/RptNum=.*/)[0])[0].split('RptNum=')[1]);

Я полагаю, это работает

Другие вопросы по теме