some text I want to capture. <tag> junk I don't care about</tag> more stuff I want.
Existe-t-il un moyen facile d'écrire une regex qui capture les première et troisième phrases dans une capture?combiner des captures dans regex
some text I want to capture. <tag> junk I don't care about</tag> more stuff I want.
Existe-t-il un moyen facile d'écrire une regex qui capture les première et troisième phrases dans une capture?combiner des captures dans regex
Pas à ma connaissance. Habituellement, c'est pourquoi les fonctions de recherche et remplacement de regex vous permettent de vous référer à plusieurs groupes de capture en premier lieu.
Malheureusement non, ce n'est pas possible. La solution est de capturer en deux captures séparées et ensuite de contacter après le fait.
Selon ce fil plus sur ce site:
Vous pouvez également envisager de décapage les données non désirées et la capture.
data = "some text to capture. <tag>junk</tag> other stuff to capture".
data = re.replace('<tag>[^<]*</tag>', data, "")
data_match = re.match('[\w\. ]+', data)
Une capture de groupe est consécutive, donc vous ne pouvez pas. Vous pouvez le faire dans un parse avec regex comme ci-dessous et rejoindre la ligne dans le code
^(?<line1>.*?)(?:\<\w*\>.*?\</\w*\>)(?<line3>.*?)$
est ici une façon non regex, répartis sur </tag>
, passer par les éléments du tableau, trouver <tag>
, puis le partage sur <tag>
et obtenir d'abord élément. par exemple
>>> s="some text I want to capture. <tag> junk I don't care about</tag> more stuff I want. <tag> don't care </tag> i care"
>>> for item in s.split("</tag>"):
... if "<tag>" in item:
... print item.split("<tag>")[0]
... else:
... print item
...
some text I want to capture.
more stuff I want.
i care
Utilisez la fonction split()
de asp.net faire la même chose.