2009-06-24 7 views
1

Je fais une recherche et remplacer et doit remplacer tous les caractères qui sont pas une virgule ",".regex pour la recherche et le remplacement

Comment puis-je rechercher tous les caractères dans n'importe quel ordre?

Par exemple:

string, like , this 

... deviendra:

replace,replace,replace, 

Répondre

4

assortis des caractères non-virgules: [^,] +

donc en perl: s/[ ^,] +/replace/g

1

En Perl, vous pouvez faire ceci:

my $string = "string, like , this"; 
my $replacement = "replace"; 
print $string, "\n"; 
$string =~ s/[^,]+/$replacement/g; 
print $string, "\n"; 
+0

vous vouliez dire assumer le remplacement de $ – Salgar

+0

Oui, c'est exact. Je l'ai réparé! –

1

Vous devez placer le texte correspondant entre parenthèses, puis remplacer cette recherche d'instance pour:

([^,]+) 

puis remplacer:

\1 

avec

replace 
1

En vim :

:%s/[^,]\+/replace/g 

%   in the whole file 
s   substitute 
[^,]   match anything except comma 
\+   match one or more times 
/replace/ replace matched pattern with 'replace' 
g   globally (multiple times on the same line) 
0

En ruby ​​qui serait:

original = "string, like , this" 
substituted = original.gsub(/[^,]+/, 'replace') 
Questions connexes