Je me demandais comment utiliser une expression rationnelle pour faire correspondre une phrase qui vient après une certaine correspondance. Comme:
var phrase = "yesthisismyphrase=thisiswhatIwantmatched";
var match = /phrase=.*/;
Cela correspondra du phrase=
à la fin de la chaîne, mais est-il possible de tout obtenir après le phrase=
sans avoir à modifier une chaîne ?
Vous utilisez groupes de capture (indiqué par des parenthèses).
Lorsque vous exécutez l'expression régulière via la fonction match ou exec, le système retourne un tableau constitué des sous-chaînes capturées par les groupes de capture. Vous pouvez ensuite accéder à ce qui a été capturé via ce tableau. Par exemple.:
var phrase = "yesthisismyphrase=thisiswhatIwantmatched";
var myRegexp = /phrase=(.*)/;
var match = myRegexp.exec(phrase);
alert(match[1]);
ou
var arr = phrase.match(/phrase=(.*)/);
if (arr != null) { // Did it match?
alert(arr[1]);
}
phrase.match(/phrase=(.*)/)[1]
résultats
"thisiswhatIwantmatched"
Les crochets spécifient un soi-disant groupe de capture. Le contenu des groupes de capture est placé dans le tableau résultant, à partir de 1 (0 est la correspondance complète).
Ce n'est pas si difficile, supposons simplement que votre contexte est:
const context = https://medicoads.net/pa/GIx89GdmkABJEAAA+AAAA
Et nous voulons avoir le modèle après pa/
, utilisez donc ce code:
const pattern = context.match(/pa\/(.*)/)[1];
Le premier élément comprend pa/
, mais pour le deuxième élément de regroupement est sans pa/
, vous pouvez utiliser chacun ce que vous voulez.
Laisse essayer ceci, j'espère que ça marche
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'));