2009-09-02 2 views
1

J'ai besoin d'aide pour résoudre certains problèmes d'expression régulière. Tout d'abord, les guillemets ".Problèmes d'expression régulière

Tout ce qui doit être compris entre "" doit correspondre. Prochain problème, je dois correspondre à tout ce qui commence par ' jusqu'à la fin d'une ligne \n ou <br />.

J'ai essayé toutes sortes, mais rien ne semble correspondre. Des idées?

Désolé les gars, je viens de réaliser que j'ai besoin des guillemets pour être entre &quot; et &quot;.

+0

Quelle langue utilisez-vous? – Nosrama

+0

Les correspondances doivent-elles être multilignes? – Nosrama

+1

PHP pas multi ligne –

Répondre

0

Essayer:

guillemets doubles:

\&quot\;(.*?)\&quot\; 

Apostrophe jusqu'à la fin de la ligne ou <br/>:

\'(.*)(\<br|$) 
2

Simplistic:

"[^"]*" 

correspondront quoi que ce soit entre guillemets, mais il ne fonctionne pas avec des guillemets doubles échappées telles que

"Abc\"Def" 

Pour la seule citation à EOL, vous pouvez utiliser

'.*$ 

Mise à jour: Sylv Erdrag a fait un point valide; faire correspondre entre les citations que vous auriez besoin

"([^"]*)" 

puis obtenir le premier sous-groupe du match. Je vois la question a été mise à jour pour mentionner que &quot; devrait être utilisé - ma réponse peut être adaptée à cela assez facilement.

+0

Ah désolé, " –

+0

Cela va également correspondre les citations, cependant. – Sylverdrag

+0

Mieux, mais "([^"] *) "est gourmand par défaut.Vous devez ajouter un? Pour obtenir le résultat souhaité:" ([^ "] *?)" – Sylverdrag

0

quoi que ce soit entre guillemets

/"(.*)"/ 

de ' jusqu'à la fin de la ligne

/'(.*)$/ 
0

Essayez ces expressions régulières:

/&quot;(.*?)&quot;/s 
/'.*?(?=\n|<br \/>)/m 
0

Pour obtenir un peu plus funky et seul match ce qui est à l'intérieur des guillemets doubles, mais pas les citations elles-mêmes:

(?<=").*?(?=") 
+0

Je préfère l'approche que j'ai donnée dans ma mise à jour répondre. –

+0

Assez juste, mais faites-le peu ou il peut y avoir quelques surprises. – Sylverdrag