2017-07-12 12 views
1

Je veux remplacer toutes les occurrences d'une ligne qui a été laissée dans notre code par un ancien outil.RegEx pour toute quantité d'espace blanc suivie d'un certain terme et le reste de la ligne

Fondamentalement, je veux trouver ceci:

(Beginning of Line)(Any amount of white space)//CodingIssue_(anything at all until end of line) 

C'est ce que j'ai jusqu'à présent, mais cela ne fonctionne pas, très probablement en raison du nombre d'espaces blancs.

^\s//CodingIssue_.\* 
+0

'\ s +' (au moins un espace); '\ s *' (zéro ou plusieurs espaces), '\ s {5,}' (au moins '5' espaces) ... –

Répondre

1

Vous pouvez utiliser

^\s*//CodingIssue_.* 

Voir la regex demo. Pour faire correspondre lignes, compilez le modèle avec l'option RegexOptions.Multiline ou ajoutez un (?m) au début du modèle.

Deetails:

  • ^ - début de la chaîne
  • \s* - zéro espacements ou plus (pour rester sur la même ligne, remplacer par [\p{Zs}\t]*)
  • //CodingIssue_ - une sous-chaîne littérale
  • .* - tous les caractères 0+ autres que le retour à la ligne (si vous correspondez à lignes Gardez à l'esprit que . correspond également CR, et c'est une bonne raison d'utiliser [^\r\n]* au lieu de .* ici).
+0

Merci parfait, j'ai ajouté (\ r \ n | \ r \ n) pour attraper la fin de la ligne pour les remplacer à travers la base de code, faire une recherche maintenant pour parcourir les résultats pour s'assurer que je n'attrape rien d'erroné. Doit être capable d'accepter au moment où il est fini :) –

+0

@Jay: Juste FYI: le '*' j'ai ajouté après '\ s' est un * quantificateur * qui correspond à 0 occurrences ou plus du motif quantifié. Et '\ *' dans votre modèle correspondait à un symbole astérisque littéral car il a été échappé. –

+0

Ah ok merci. Ajoutant [\ r \ n] semble attraper n'importe quelle quantité de nouvelles lignes après la ligne, comment puis-je m'assurer qu'il attrape seulement un et un seul? Merci! –