-1
votes

Str.Find () Impossible de rechercher '\ n'

J'essaie d'extraire le texte entre deux mots-clés à l'aide de str.find () . Mais il ne trouve pas la survenue de '\ n' xxx

code: xxx

ps-veux utiliser str. Rechercher () Méthode uniquement


6 commentaires

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.


4 Réponses :


1
votes

Vous avez mal calculé le premier index. Essayez ceci: xxx

sortie: xxx


1 commentaires

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'



0
votes

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


0 commentaires

0
votes

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])]


0 commentaires

1
votes

Il y a plusieurs problèmes ici:

  • dans le dictionnaire Mots-clés Vous utilisez une variable de la date qui devrait être une chaîne: '' date '. .
  • dans le Mots-clés Dictionnaire, vous avez doublement échappé \\ n , pendant que vous ne le faites pas dans le texte texte .
  • Dans les calculs d'index, vous utilisez une variable clé non définie dans où; Cela devrait être la touche définie dans le Mots-clés Dictionnaire.
  • et enfin, vous calculez la position de départ de la première index, alors qu'elle devrait être la position de fin.

    Essayez ceci: xxx


0 commentaires