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/
вы можете использовать каждый, что хотите.