2013-05-11 4 views
1

j'ai un grand document avecexpression Regex n'attrapant dernières valeurs

<title>words words </title> 

comme descripteurs je suis en train de trouver une expression regex pour me donner les données entre ces balises que j'ai trouvé ce

<title.*?>(\w+)</title> 

qui fonctionnera mais ne capte que quelques matches que je pense que ce parce que les balises sont généralement quelque chose comme ça

adaddad<title>Word word word</title>sdfdsfdsfs 

a juste des déchets aléatoires des deux côtés habituellement. Je suis vraiment mauvais à regex et essayant toujours de l'apprendre j'ai trouvé beaucoup de poteau vraiment étroit mais rien qui fonctionne exactement pour mon problème.

:origLink></item>\r\n<item><title>words word word</title><guid is 

c'est un meilleur exemple de ce que l'un de mes cordes ressemble

Répondre

1

Essayez de faire votre regex avide

<title.*?>.+?</title> 

En outre, \ w + ne correspond pas à des espaces ""

Essayez Expresso à affiner votre regex http://www.ultrapico.com/Expresso.htm

+0

des thats exactement ce dont j'avais besoin merci – AndrewBrntt

+0

Content de vous aider, veuillez marquer ceci comme réponse afin que les autres puissent trouver rapidement la réponse. – Jras

+1

@Jras, '. +?' N'est pas gourmand, c'est paresseux et vous n'avez aucun groupe de capture ...? – plalx

1

Je pense que le problème est que vous essayez d'utiliser \w pour capturer le texte avec des caractères de texte et les espaces ainsi. Il devrait être:

<title.*?>([\w\s]+?)</title> 

Cela forcera le texte comme celui-ci

adaddad<title>Word word word</title>sdfdsfdsfs 

à capturer avec les mots et les espaces ainsi

+0

1+ regex correcte – Damith

-1

Utilisez plutôt

^[^<]*<title.*?>([^<]*)</title>.*$ 

Explication

^ at the beginning means begining of line 
[^<] any character but '<' 
.*$ any garbage after the tag is closed 

cela va attraper les titres vides ainsi que toute chaîne bizarre que vous pourriez avoir entre les balises.

<title>Normal title</title> 
<title></title> 
<title>Weird #@[email protected]#%@%^[]{}""///? title ≥╙♥</title>