[PHP] Regex

Cokolie -  
jjsteing Messages postés 1803 Statut Contributeur -
Bonjour
J'ai un problème avec une regex que j'essaye de faire.
En gros, je veux récupérer les champs d'un fichier Selenium. J'ai donc plusieurs lignes de ce type:
$this->click("rep3_0");
$this->type("nom", "Dupont");
$this->type("prenom", "Martin");
Dans lesquels je veux donc récupérer "nom" et "prenom"
J'ai réussi grâce à une première regex à enlever le début, ce qui fait qu'il me reste des lignes de ce type la:
rep3_0")
nom", "Dupont")
prenom", "Martin")
Je voudrais donc utiliser une seconde fois preg_replace, en remplaçant la fin par une chaine vide, à partir du guillemet.
Mais j'ai un peu de mal à trouver la regex qu'il faut, je voudrais dire une chaine qui commence par " et qui se termine par ")
J'ai donc essayé un truc du genre, en essayant séparément les deux expressions:
/^"/ > commence par "
/\)$/ > termine par ")
Mais ça ne fonctionne pas. Je suis pas très douée en regex, et j'aimerais donc solliciter votre aide pour ce problème :)
De plus, je ne sais pas si c'est vraiment possible de sélectionner toute l'expression de cette façon, en réunissant les deux regex en une.
Merci d'avance pour l'aide
A voir également:

4 réponses

Cokolie
 
J'ai eu la solution sur un autre forum, je la met ici si ça peut aider :)
<?php
$str = '$this->click("rep3_0");
$this->type("nom", "Dupont");
$this->type("prenom", "Martin");';

$reg = '#^[^"]*"([^"]+).*#mx';
print preg_replace($reg, '$1', $str);
?>
1
jjsteing Messages postés 1803 Statut Contributeur 181
 
0
Cokolie
 
#^guitare# La chaîne doit commencer par "guitare"
#guitare$# La chaîne doit se terminer par "guitare"

C'est bien ce que je fais, /^"/ pour commencer par "
/")$/ pour terminer par ")

Je teste mes regex sur ce site : https://lumadis.be/regex/test_regex.php
Mais non, ça ne marche pas
0
jjsteing Messages postés 1803 Statut Contributeur 181
 
ok, met ton post en resolu :)
0