J'essaie d'extraire le texte entre deux mots-clés à l'aide de code: p> ps-veux utiliser str.find () code>. Mais il ne trouve pas la survenue de '\ n' str. Rechercher () Code> Méthode uniquement P> P>
4 Réponses :
Vous avez mal calculé le premier index. Essayez ceci: sortie: p>
Pourriez-vous s'il vous plaît essayer votre logique sur cette chaîne texte = 'Cardiff, le 6 novembre 2007 \ N \ N Company \ n \ n'
Généraliser la réponse. Utilisez ce code:
text2 = text[text.find(keywords[key][0])+len(keywords[key][0]):text.find(keywords[key][1])] # you can replace the key with whatever you want as keys
C'est une question très intéressante et va montrer comment quelque chose de trivial peut devenir difficile à trouver s'il est utilisé de manière enchaînée. Voyons ce qui se passe dans votre code. Vous dites que votre code ne peut pas sembler trouver le 1er occurrence, cependant, je voudrais énoncer le contraire, il trouve définitivement la première occurrence. Dans le texte: 'Cardiff, le 6 novembre 2007 \ n \ n \ n' code> Vous essayez de trouver la première occurrence de 'cardiff, le' code>. Vous verrez que dans le texte, l'index de la chaîne commence à partir de l'index 0, c'est-à-dire texte [0] code>. Donc, ce code texte [texte.find (Mots-clés [clé] [0]): texte.find (Mots-clés [clé] [1])] code> devient essentiellement Texte [0: Text.find (Mots-clés [clé] [1])] code>. Maintenant, dans la règle de tranchée Python, 0 est inclusive et vous obtenez la sortie comme Cardiff, le 6 novembre 2007 code> et pensant qu'il n'a pas trouvé la première occurrence. Donc, afin de le réparer, vous devez vous déplacer Démarrer Tranking à partir de 'Cardiff, le' Code>. Vous pouvez y parvenir en modifiant la mission Text2 de cette manière: text2 = text[text.find(keywords[key][0])+len(keywords[key][0]):text.find(keywords[key][1])]
Il y a plusieurs problèmes ici:
'' date ' code>. Li>.
- dans le
Mots-clés code> Dictionnaire, vous avez doublement échappé \\ n code>, pendant que vous ne le faites pas dans le texte texte code>. li >
- Dans les calculs d'index, vous utilisez une variable code> clé code> non définie dans où; Cela devrait être la touche code> code> définie dans le
Mots-clés code> Dictionnaire. Li>
- et enfin, vous calculez la position de départ de la première index, alors qu'elle devrait être la position de fin. LI>
ul>
Essayez ceci: p> xxx pré> p>
Pourquoi vous utilisez la clé? Je suppose que vous vouliez utiliser la date comme mot-clé ou je me trompe?
@Docaro modifiant ne doit pas être utilisé pour corriger les erreurs d'une personne - laissez un commentaire ou une réponse à la place.
Je me suis remarqué que vous avez édité la question avec les corrections de ma réponse. Un uppote / accepter de ma réponse serait approprié ...
@Daviddeprost op n'a pas, quelqu'un d'autre a. Je russe la modification
Ah OK, merci pour le soutien. Mais il semble que OP a maintenant réédité votre annulation;)
Bonjour, quelqu'un peut-il jeter un coup d'œil à la question, j'ai abordé le problème plus spécifiquement maintenant.