2015-09-02 1 views
2

J'essaie d'analyser un fil d'Ariane et je l'ai analysé pour la plupart des parties (dans d'autres regex) - toutes sauf la 3ème chaîne de données.regex incluant le signe supérieur à

Exemple breadcrumb Semi-conducteurs - Circuits intégrés> Données & Conversion de signal> numérique-analogique (DAC)> Produit Voir

Pour ce cas, le fil d'Ariane doit contenir 'Voir le produit' et aussi 3 supérieur aux signes. Dans ces conditions, je dois le texte après la 2ème> Inscrivez-vous encore à l'exception de ce qui suit>

Dans cet exemple, il serait « convertisseurs numérique-analogique (DAC) »

Cela fonctionne regex sauf pour ce inclut les plus de digital-to-analogique (DAC) > '

^([^>]*>){3}[^>](.*)(Product View)$ 

S'il vous plaît quelqu'un pourrait aider?

+0

reformulez votre question, je ne comprends pas exactement ce que vous voulez – QuakeCore

+0

Quel est le langage de programmation que vous utilisez? Voici comment ce texte peut être capturé: ['^ (?: [^>] * \ S *>) {2} \ s * ([^>] *) \ s *>'] (https: // regex101 .com/r/lO0tY7/2). Le résultat est dans le groupe 1. Le dernier '\ s *>' permet d'omettre le dernier '>'. Si cela peut être à la fin d'une chaîne, utilisez une alternance: ['^ (?: [^>] * \ S *>) {2} \ s * ([^>] *) (?: \ S * $ | \ s *>) '] (https://regex101.com/r/lO0tY7/3). –

+0

Je dois utiliser Regex standard comme pour le générateur de règles de classification Adobe Omniture. J'ai regardé des groupes mais je n'ai pas réussi à les faire travailler avec les autres critères - ça et je suis novice en la matière. – user3207116

Répondre

1

Vous pouvez utiliser

^(?:[^>]*\s*>){2}\s*([^>]*?)\s*(?:$|>) 

Voir demo

Ici, ^ correspond au début de la chaîne, (?:[^>]*\s*>){2} matchs 2 occurrences de 0 ou plusieurs caractères autres que > suivi avec un espace en option, puis \s* matchs espace blanc facultatif, puis ([^>]*?) correspond et capture 0 ou plusieurs caractères autres que > jusqu'à la fin de la chaîne ou > suivant.

+0

Notez que l'espace n'est pas capturé dans le groupe 1 parce que j'ai utilisé la correspondance paresseuse avec '[^>] *?'. –