web-dev-qa-db-fra.com

Utilisation de regexreplace pour entourer les nombres de parenthèses

Les données avec lesquelles je commence:

1 bonjour
2 Encore 22 lignes
300 Oui, la première étape consiste à admettre que vous avez besoin d'aide.

Je veux que la version "finie" ressemble à ceci:

(1) bonjour
(2) Juste une autre (22) ligne
(300) Oui, la première étape consiste à admettre que vous avez besoin d'aide.

Pour récapituler: entourez les nombres entre parenthèses.

Je peux facilement identifier les numéros dans la section "Rechercher" de REGEXREPLACE, avec [0-9]+

Je suis complètement perdu dans la section de remplacement. Comment puis-je conserver la chaîne correspondante?

3
Jim Foster

Si votre texte est dans la cellule A1, alors

=regexreplace(A1, "([0-9]+)", "($1)")

va faire le travail. Le terme que vous recherchiez est capture: les parenthèses autour de [0-9]+ capturent la sous-chaîne correspondante, c’est-à-dire qu’elle est enregistrée quelque part. Dans la chaîne de substitution, les commandes $ 1, $ 2, ... peuvent être utilisées pour faire référence à la première, deuxième, etc. chaîne capturée.

Ainsi, la commande dit: recherchez une chaîne de chiffres consécutifs (avec gourmandise, c’est-à-dire saisissez tous ceux qui sont consécutifs), et remplacez-la par la même chaîne entourée de parenthèses. Et étant un moteur de recherche et de remplacement global, regexreplace effectue les opérations ci-dessus pour chaque sous-chaîne correspondante.

1
user79865