2010-04-21 6 views
0

Je suis en train de dépouiller les titres de contenu hors du milieu des chaînes de texte. Pourrais-je utiliser regex pour enlever tout de cette chaîne, sauf pour le titre (en italique) dans ces chaînes? Ou y a-t-il un meilleur moyen?php expression regex pour obtenir le titre

Joe utilisateur a écrit un billet de blog appelé Les 10 meilleures Regex Expressionsdans la catégorie Regex.

Jane utilisateur a écrit un billet de blog appelé Regex est dur!dans la catégorie TechProblems.

J'ai essayé de trouver une expression regex pour couvrir cela, mais je pense qu'il pourrait en avoir besoin de deux. L'astuce est que le texte en gras est toujours le même, vous pouvez donc rechercher que, comme ceci:

regex: supprimer tout avant et y compris a écrit un billet de blog appelé

regex: supprimer dans la catégorie et tout ce qu'il y a après.

+1

alors, qu'avez-vous déjà essayé? – SilentGhost

+0

horrible, code regex amateur qui ne devrait pas voir la lumière du jour. :-) bonne réponse ci-dessous. – 55skidoo

Répondre

1
^.+ wrote a blog post called (.+) in the category .+$ 

Alors:

preg_replace('|^.+ wrote a blog post called (.+) in the category .+$|', '\1', $str); 

^est début de la ligne
+ est des personnages (un à plusieurs)
(+.) Même, mais le contenu sera disponible dans \ 1. , pour preg_replace()
$ est la fin de la ligne

+0

Parfait - merci beaucoup! Celui-ci était vraiment frustrant. – 55skidoo

Questions connexes