7
votes

Java Regex Comment trouver le match parent?

n'importe quelle page de wikipedia : xxx pré>

Comment puis-je trouver Template1 Code> S Teneur (Démarrer est | A CODE> END est }} CODE>) avec Java Regexes? P>

J'ai essayé: P > xxx pré>

mais ici, la regex recherche le premier }}}} code> (qui est template2 code> }} code>}} code>}} code>}} code> ) alors s'arrête.
Je veux passer }} code> est n'importe quel {{ code> est ouvert. Ensuite, je veux trouver le meilleur match parent. P>

Je veux obtenir le top template1 code> contenu entre le haut {{ code> et }} code >? >

content.replaceAll("\\s+","");  


6 commentaires

Utilisez jsoup API. Plus simple que d'écrire une regex


Il est fortement conseillé de faire appel à des expressions régulières pour analyser Markup, ou quoi que ce soit avec une grammaire hiérarchique. Utilisez votre propre analyseur ou tout produit disponible (voir le commentaire de ThelostMind).


@ThelostMind n'est pas JSOUP HTML Parser? Comment puis-je analyser "{{" avec "jsoup"


@Kumul - vous pouvez obtenir des balises et des données distinctes


Qu'est-ce qui est cohérent entre les modèles parents? Ce que j'essaie d'obtenir, c'est ce qui signifie le début d'un modèle de parent (qui est différent des modèles d'enfants). Afin de résoudre votre problème, nous devons identifier le point d'arrêt pour correspondre. Aussi, pourquoi savez-vous toute la blancheur? Comme cela peut aider à trouver un point d'arrêt ...


Ok, je pense que je comprends maintenant. En regardant les pages Wikipedia, la source est un désordre complet à lire. J'en aurayerai et je vais revenir à vous


3 Réponses :


0
votes
\\{\\{\\s*Template1\\s*(.*?)\\n\\}\\}

                        ^^
Just include \n.See demo.https://regex101.com/r/uF4oY4/72

1 commentaires

Ce n'est pas un travail lorsque la dernière ligne est | j = {{template3 | aa = kkk | bb = {{template4 | cc = uu}}}}}}



1
votes

/ ^ {{template1 (. *?) ^}} / sm

retourne: xxx https://regex101.com/r/qc6cm1/1 (démo)


7 commentaires

Ça ne fonctionne pas lorsque vous supprimez les espaces blancs lorsque vous changez de ligne vers "| J = {{template3 | aa = kkk | bb = {{template4 | cc = uu}}}}}}"


Je ne comprends pas ce que vous dites - qu'en est-il de WhitSpace?


Lorsque vous déplacez "Template1" Fermeture de la balise "}}" à la fin de "| J" Ligne Cette regex ne fonctionne pas. (Espace: lorsque vous supprimez toutes les nouvelles lignes, faites une ligne unique tout le contenu)


Cela ne fonctionne pas parce que le texte n'est pas exactement que j'ai écrit regarder à ceci: Regex101.com/r/qc6cm1/4


Vous continuez à changer la sortie du texte que vous souhaitez correspondre! S'il vous plaît décider comment cela devrait ressembler exactement.


Vous n'avez pas compris la principale question. Les pages Wikipedia sont en train de changer dynamique, il n'y a donc pas de page exactement à Wikipedia. Quelqu'un utilise WhitSpace Quelqu'un n'utilise pas. J'ai donc édité ma question. Je pense que la question est claire maintenant.


Laissez-nous Continuez cette discussion en chat .



0
votes

Je pense que l'analyseur ferait mieux Jub dans ce cas, mais si vous souhaitez regex, comment de celui-ci: xxx

démo

J'ai supposé que votre entrée est comme une ligne unique.