J'ai un texte composé d'informations entourées d'un certain modèle. La seule chose que je sais est le modèle: "$ {template.start}" et $ {template.end} Pour le garder simple, je vais remplacer $ {template.start} et $ {template.end} par "a" dans l'exemple.Utilisation d'un astérisque dans un fichier RegExp pour extraire des données entourées d'un certain modèle
donc une entrée dans le texte serait:
aINFORMATIONHEREa
Je ne sais pas combien de ces entrées concaténées dans le texte. Donc, ce qui suit est correct aussi:
aFOOOOOOaaASDADaaASDSDADa
Je veux écrire une expression régulière pour extraire l'information incluse par les "a" s.
Ma première tentative était de faire:
a(.*)a
qui fonctionne tant qu'il n'y a qu'une seule entrée dans le texte. Dès qu'il y a plus d'une entrée, il échoue, à cause du .*
correspondant à tout. Donc, en utilisant a(.*)a
sur aFOOOOOOaaASDADaaASDSDADa
résultats dans un seul groupe de capture contenant tout entre le premier et le dernier caractère du texte qui sont « a »:
FOOOOOOaaASDADaaASDSDAD
Ce que je veux obtenir quelque chose comme
captureGroup(0): aFOOOOOOaaASDADaaASDSDADa
captureGroup(1): FOOOOOO
captureGroup(2): ASDAD
captureGroup(3): ASDSDAD
Ce serait génial de pouvoir extraire chaque entrée du texte et de chaque entrée l'information qui est incluse entre les "a" s. En passant, j'utilise la classe QRegExp de Qt4.
Des indices? Merci! Markus
variation multiple de cette question ont été vu auparavant. Diverses discussions connexes:
- Regex to replace all \n in a String, but no those inside [code] [/code] tag
- Using regular expressions how do I find a pattern surrounded by two other patterns without including the surrounding strings?
- Use RegExp to match a parenthetical number then increment it
- Regex for splitting a string using space when not surrounded by single or double quotes
- What regex will match text excluding what lies within HTML tags?
et probablement d'autres ...
C'était le bon indice pour moi! Merci! Dans Qt vous devez utiliser QRegExp :: setMinimal (true); pour atteindre le même je viens de découvrir. –
. *? est plus clair tant que votre langage regex le supporte. – PEZ