2014-07-23 6 views
-1

Si j'ai une ligne de texte que je veux supprimer d'un fichier texte dans le bloc-notes et il est toujours formaté comme celui-ciExpression régulière pour rechercher et remplacer dans notepad ++

[texte]:

sauf que les mots dans la zone de texte changent. Qu'est-ce qu'une expression régulière que je pourrais créer pour supprimer toute la section avec la fonction de recherche et de remplacement dans le bloc-notes?

+0

Exactement ce qui peut être à l'intérieur des crochets? Haut de casse? Minuscule? chiffres? les espaces? onglets? ponctuation? – LeonardChallis

+1

@alph vous voulez dire ce http://regex101.com/r/kF4pU2/8? –

Répondre

1

Pour supprimer toute la ligne commençant par [tout texte]: vous pouvez utiliser: ^[\t ]*\[.*?\]:.*?\r\n

Explication:

^ ... lancer la recherche au début d'une ligne (dans ce cas).

[\t ]* ... trouver 0 ou plusieurs onglets ou espaces.

\[ ... trouve le crochet d'ouverture comme caractère littéral.

.*? ... trouver 0 ou plusieurs caractères sauf la nouvelle ligne caractères retour chariot et saut de ligne non gourmand, ce qui signifie autant de caractères que possible pour obtenir une correspondance positive, par exemple arrêter la première occurrence de ] dans le rechercher l'expression.

\]: ... trouver le crochet fermant comme caractère littéral et deux points.

.*?\r\n ... trouver 0 ou plusieurs caractères à l'exception des caractères de nouvelle ligne et enfin aussi le retour chariot et le saut de ligne terminant la ligne.

La chaîne recherche ^[\t ]*\[.*?\]:.*?$ trouverait également la ligne complète, mais sans correspondance aussi la terminaison de ligne.

La chaîne de remplacement est pour les deux chaînes de recherche une chaîne vide.

0

Si en enlevant toute la section, vous voulez dire enlever le [texte]: jusqu'à la prochaine [OtherText] :, vous pouvez essayer ceci:.

\[text\]:((?!\[[^\]]*\]:).)* 

Rappelez-vous de mettre le drapeau » correspond newline ".

Cette regex correspond fondamentalement à votre titre de section. Ensuite, il commencerait à correspondre juste après ce titre et pour chaque caractère, il utilise un lookahead négatif pour vérifier si la chaîne qui suit ce caractère ressemble à un titre de section. Si c'est le cas, la correspondance est terminée.

Remarque: N'oubliez pas que cette expression régulière remplacera toutes les occurrences du motif correspondant. En d'autres termes, si vous avez plus d'un de cette section, ils sont tous les deux remplacés.

Questions connexes