2013-07-24 4 views
0

Je suis en train de remplacer plusieurs centaines de valeurs différentes avec une seule valeur: (exemple) =Notepad ++ gamme remplacer

ligne 115242: birth_date = "850.1.1"

ligne 115317: birth_date = "851,1 .1"

ligne 115392: birth_date = "855.1.1" etc ....

Je veux remplacer chacun avec: birth_date = "451.1.1"

Existe-t-il un moyen rapide et facile de le faire avec la fonction de remplacement? (Suppose que je ne connais pas des termes/acronymes/jargon)

Essencially, je suis en train de remplacer la gamme de valeurs entre:

birth_date = "600.1.1" et birth_date = "900,1. 1"

Ceci est en python

+0

Utilisez Python pour effectuer le remplacement? – zhangyangyu

+0

Y at-il des valeurs dans le fichier qui sont en dehors de la plage spécifiée? – jpmc26

Répondre

1

Vous pourriez être en mesure de tirer parti des expressions régulières. La limite de portée le rend plus difficile, mais avec 2 remplacements différents, je pense que nous pouvons le gérer. (La complication vient du fait que vous ne voulez pas remplacer les valeurs comme 900.4.3.)

  1. Sauvegardez votre fichier, juste pour être sûr.
  2. Ouvrez la boîte de dialogue Remplacer et remplacez le mode de recherche par "Expression régulière".
  3. Entrez birth_date="[678]\d\d\.\d+\.\d+" dans "Rechercher:".
  4. Entrez birth_date="451.1.1" dans «Remplacer par:»
  5. Appuyez sur Remplacer tout.
  6. Modifier "Rechercher": birth_date="900\.1\.1".
  7. Appuyez sur Remplacer tout.

Puis vérifiez pour vous assurer qu'il a fait ce que vous vouliez. Un outil de différenciation pourrait être utile là-bas. (Vous pouvez comparer le fichier modifié à la sauvegarde.)

Les deux expressions rationnelles différentes sont nécessaires en raison de la plage. Le premier prend tout ce qui commence par 6, 7, ou 8 plus deux chiffres numériques quelconques. Le second gère la dernière valeur que nous voulons remplacer, qui est la première des valeurs 900.

+0

Magnifique, ça a marché. bien que la plage que j'ai spécifiée ait simplement couvert TOUTES les valeurs, il n'y en avait pas plus de 900 ou moins de 600. (Y at-il une page Web qui couvre pourquoi ça marche? Je veux le comprendre afin que je puisse l'utiliser pour tout ce que je veux dans le futur) –

+0

Sans la limitation de portée, vous auriez pu utiliser 'birth_date =" \ d + \. \ d + \. \ d + "' pour la recherche. Vous aurez besoin de connaître les expressions régulières si vous voulez comprendre. Les expressions régulières permettent de spécifier des modèles, puis une bibliothèque d'expressions régulières peut utiliser ce modèle pour essayer de faire correspondre les chaînes. Ils peuvent être difficiles à aborder, mais c'est un bon signe que vous vous demandez «pourquoi». Voici un tutoriel, si cela vous aide: http://www.regular-expressions.info/tutorial.html. Vous pourriez aussi vouloir chercher d'autres ressources, surtout si cela ne vous semble pas trop clair au début. – jpmc26

+0

Appréciez-le, merci –

Questions connexes