python extrait le contenu entre les chaînes

Étant donné une chaîne : This is some text PT11extract this part.ER\n This is some text PT22extract this part.ER\n
comment extraire la chaîne entre le PT et l'ER ci-dessus ?

Pour extraire la chaîne entre « PT » et « ER » dans une chaîne donnée, vous pouvez utiliser des expressions régulières pour y parvenir. Voici un exemple de code :

import re

text = "This is some text PT11extract this part.ER\n This is some text PT22extract this part.ER\n"

pattern = r'PT(.*?)ER'  # 使用非贪婪匹配,提取每对 PT 和 ER 之间的内容

matches = re.findall(pattern, text, re.DOTALL)
for match in matches:
	# match = match.strip()  # 去除字符串两端的空格、换行符等
    print(match)

Sortir:

11extract this part.
22extract this part.

Dans l'exemple ci-dessus, nous avons utilisé l'expression régulière PT(.*?)ERpour faire correspondre chaque paire de « PT » et « ER » et avons utilisé la re.findall()fonction pour trouver tous les résultats correspondants. Pour pouvoir faire correspondre les nouvelles lignes, nous utilisons re.DOTALLle drapeau.

Ensuite, nous parcourons la liste des résultats correspondants, où nous pouvons utiliser strip()la fonction pour supprimer les espaces, les nouvelles lignes, etc. aux deux extrémités de la chaîne. Il n’y a pas de suppression ici, il suffit de l’imprimer directement.

Notez que cet exemple suppose que la chaîne entre chaque paire de « PT » et « ER » ne contient pas de caractère de nouvelle ligne. Si la situation réelle change, vous devrez peut-être ajuster l'expression régulière ou la logique du code en fonction de vos besoins spécifiques.

Si le code ressemble à ceci :

import re

text = "This is some text PT11extract this part.ER\n This is some text PT22extract this part.ER\n"

pattern = r'PT.*?ER'  # 使用非贪婪匹配,提取每对 PT 和 ER 之间的内容

matches = re.findall(pattern, text, re.DOTALL)
for match in matches:
	# match = match.strip()  # 去除字符串两端的空格、换行符等
    print(match)

Le résultat est :

PT11extract this part.ER
PT22extract this part.ER

Guess you like

Origin blog.csdn.net/m0_66238629/article/details/131616607