2016-06-15 2 views
1

J'ai un ensemble de données d'adresse qui avait trois colonnes principales numéro de politique, adresse et numéro d'index. Au milieu de certaines adresses, il y a de nouvelles lignes dont je veux me débarrasser. Mais je ne veux pas me débarrasser des nouvelles lignes séparant chaque ligne de données. J'utilise le pavé de texte et essaie de créer une expression régulière qui peut localiser les nouvelles lignes spécifiques que je veux supprimer, en utilisant une recherche et remplacer. Chaque numéro d'index est un nombre aléatoire suivi de "_CDB", donc j'ai essayé de créer une expression régulière qui supprime toutes les nouvelles lignes qui ne sont pas précédées de "_CDB". Donc, mon expression actuelle utilise un lookbehind qui ressemble au (?<!_CDB)\n suivant, mais il semble toujours localiser chaque nouvelle ligne plutôt que seulement ceux qui ne sont pas précédés de "_CDB".Utilisation de regex pour se débarrasser des retours à la ligne dans les adresses

Ce serait très bien si quelqu'un pouvait suggérer où je me trompe ou suggérer une autre façon d'éliminer ces nouvelles lignes au milieu des adresses.

Merci

+1

Pouvez-vous montrer un échantillon de votre dossier? –

Répondre

1

Description de

Votre probablement obtenir accroché sur des lignes qui ont des espaces à la fin de la ligne. Je voudrais simplement correspondre à tous les personnages de retour et la capture _CDB\n, puis il suffit de remplacer

(_CDB\s*[\n\r]+)|[\n\r] 

Remplacer par:$1

Regular expression visualization

Exemple

Live Demo

https://regex101.com/r/qT6nU8/1

texte Exemple

321321312, 1111 deer park road 
kenosha 
wi 
53144, 1111_CDB 
321321312, 222 deer park road 
kenosha 
wi 
53144, 222_CDB 
321321312, 333 deer park road 
kenosha 
wi 
53144, 333_CDB 
321321312, 4444 deer park road 
kenosha 
wi 
53144, 4444_CDB 

Après remplacement

321321312, 1111 deer park roadkenoshawi53144, 1111_CDB 
321321312, 222 deer park roadkenoshawi53144, 222_CDB 
321321312, 333 deer park roadkenoshawi53144, 333_CDB 
321321312, 4444 deer park roadkenoshawi53144, 4444_CDB 

Explication

NODE      EXPLANATION 
---------------------------------------------------------------------- 
    (      group and capture to \1: 
---------------------------------------------------------------------- 
    _CDB      '_CDB' 
---------------------------------------------------------------------- 
    \s*      whitespace (\n, \r, \t, \f, and " ") (0 
          or more times (matching the most amount 
          possible)) 
---------------------------------------------------------------------- 
    [\n\r]+     any character of: '\n' (newline), '\r' 
          (carriage return) (1 or more times 
          (matching the most amount possible)) 
---------------------------------------------------------------------- 
)      end of \1 
---------------------------------------------------------------------- 
|      OR 
---------------------------------------------------------------------- 
    [\n\r]     any character of: '\n' (newline), '\r' 
          (carriage return) 
---------------------------------------------------------------------- 
+0

Merci semble fonctionner –