L'extraction de la Réponse de l'en-Tête avec une Expression Régulière
Je suis en train d'extraire le numéro de confirmation à la fin de l'emplacement de la balise dans l'en-tête de réponse d'une page à l'aide de RegEx. L'en-tête de réponse est la suivante:
HTTP/1.1 302 Moved Temporarily
Date: Mon, 09 Sep 2013 17:55:50 GMT
Server: Apache-Coyote/1.1
Location: http://test.regtest.com/cart/confirmation?confirmationNumber=00284031
Content-Language: en
Content-Length: 0
X-Cnection: close
Content-Type: text/plain; charset=UTF-8
Vary: Accept-Encoding
Par exemple, si dans l'en-tête de la ligne est: est-ce
Location: http://test.regtest.com/cart/confirmation?confirmationNumber=00284031
Je suis à la recherche de retour ce pour l'utiliser comme une variable plus tard:
00284031
Ma RegEx expression est quelque chose comme ceci:
Location: http://test.regtest.com/cart/confirmation?confirmationNumber=(\d+)?
Je suis nouveau sur le RegEx et ce que j'ai écrit ci-dessus est basé sur l'exemple sur le lien suivant:
http://www.sourcepole.ch/2011/1/4/extracting-text-from-a-page-and-using-it-somewhere-else-in-jmeter
J'ai besoin de ce numéro de confirmation pour une dynamique de la page de redirection pour un script Jmeter je suis en train d'écrire. Toute aide serait grandement appréciée et si vous avez besoin d'informations supplémentaires pour aider à répondre à la question, laissez-moi savoir!
Merci beaucoup à l'avance.
OriginalL'auteur user1615559 | 2013-09-09
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Location: [\S]+?confirmationNumber=(\d+)
Votre problème est l'utilisation de caractères spéciaux dans la chaîne sans échapper à eux - par exemple:
?
et/
Note mon
?
ne correspond pas à la question à cocher en face de confirmationNumber, mais à la place est de rendre le[\S]+
non-greedy.Si vous voulez être explicite, votre version de travail en cas de modification de ce genre pour échapper les caractères ayant une signification particulière:
OriginalL'auteur Matthew
Vous n'avez pas besoin de correspondre à l'ensemble de la ligne pour obtenir le numéro de confirmation, au lieu de cela, vous pouvez simplement faire correspondre le nombre comme ceci:
(?<=confirmationNumber=)
est appelé un coup d'oeil derrière, ce que l'expression dit est de faire correspondre un plus grand nombre de chiffres(\d+)
et les mettre dans un groupe, uniquement si ces chiffres sont précédés par la chaîne suivanteconfirmationNumber=
.Rege101 Démo
OriginalL'auteur Ibrahim Najjar
Regexp est de la forme suivante
OriginalL'auteur Subash Bose