web-dev-qa-db-fra.com

Tout en remplaçant en utilisant regex, Comment garder une partie de la chaîne correspondante?

J'ai

12.hello.mp3
21.true.mp3
35.good.mp3
.
.
.

ainsi de suite en tant que noms de fichiers listés dans un fichier texte.

Je dois remplacer uniquement les points (.) Situés devant les chiffres par un espace (par exemple, 12.hello.mp3 => 12 hello.mp3). Si j'ai regex comme "[0-9].", Il remplace aussi nombre . S'il vous plaît aidez-moi.

36
Srikanth P Vasist

Remplacer

^(\d+)\.(.*mp3)$

avec

\1 \2

De plus, dans les versions récentes de notepad ++, il acceptera également les éléments suivants, qui sont également acceptés par les autres éditeurs/éditeurs (par exemple, les produits JetBrains comme Intellij IDEA):

$1 $2

Cela suppose que le moteur de correspondance du bloc-notes ++ regex prend en charge les groupes. Ce que veut dire regex est essentiellement: faites correspondre les chiffres devant le premier point en tant que groupe 1 et tout ce qui suit après en tant que groupe 2 (mais uniquement si elle se termine par mp3 )

54
Ioan Alexandru Cucu

En utilisant le modèle de base, bien décrit dans la réponse acceptée, voici un exemple pour ajouter le class="odd" et le class="even" à chaque élément <tr> dans Notepad ++ ou tout autre éditeur compatible avec les expressions régulières:

Trouvez quoi: (<tr><td>)(.*?\r\n)(<tr><td>)(.*?\r\n)

Remplacer par: <tr class="odd"><td>\2<tr class="even"><td>\4

0
eapo