Javascript Regexp - Символы соответствия после определенной фразы

Мне было интересно, как использовать regexp для соответствия фразе, которая приходит после определенного соответствия. Как:

var phrase = "yesthisismyphrase=thisiswhatIwantmatched";
var match = /phrase=.*/;

Это будет соответствовать от phrase= до конца строки, но можно получить все после phrase= без необходимости изменять строку?

Ответ 1

Вы используете группы захвата (обозначается скобками).

Когда вы выполняете регулярное выражение с помощью функции match или exec, возвращайте массив, состоящий из подстрок, захваченных группами захвата. Затем вы можете получить доступ к тому, что было захвачено через этот массив. Например:.

var phrase = "yesthisismyphrase=thisiswhatIwantmatched"; 
var myRegexp = /phrase=(.*)/;
var match = myRegexp.exec(phrase);
alert(match[1]);

или

var arr = phrase.match(/phrase=(.*)/);
if (arr != null) { // Did it match?
    alert(arr[1]);
}

Ответ 2

phrase.match(/phrase=(.*)/)[1]

возвращает

"thisiswhatIwantmatched"

В скобках указывается так называемая группа захвата. Содержимое групп захвата помещается в результирующий массив, начиная с 1 (0 - полное совпадение).

Ответ 3

Попробуйте это, я надеюсь, что он работает

var p = /\b([\w|\W]+)\1+(\=)([\w|\W]+)\1+\b/;
console.log(p.test('case1 or AA=AA ilkjoi'));
console.log(p.test('case2 or AA=AB'));
console.log(p.test('case3 or 12=14'));

Ответ 4

Это не так сложно, просто предположим, что ваш контекст:

const context = https://medicoads.net/pa/GIx89GdmkABJEAAA+AAAA

И мы хотим иметь шаблон после pa/, поэтому используйте этот код:

const pattern = context.match(/pa\/(.*)/)[1];

Первый элемент включает pa/, но для второго элемента без pa/ вы можете использовать каждый, что хотите.