2009-06-24 3 views
1

Я занимаюсь поиском и заменой и заменяю все символы не a запятой ",".regex для поиска и замены

Как я могу найти всех персонажей в любом порядке?

Например:

string, like , this 

... Станет:

replace,replace,replace, 

ответ

4

Matching любые не запятая символов: [^] +

так в Perl: s/[ ^,] +/replace/g

1

В Perl вы можете сделать это:

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

Предположим, вы имели в виду $ замена – Salgar

+0

Да, это верно. Починил это! –

1

Вы должны заключить текст соответствия в скобках, а затем заменить, что для поиска экземпляра для:

([^,]+) 

, а затем заменить:

\1 

с

replace 
1

В 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

В рубина, который был бы:

original = "string, like , this" 
substituted = original.gsub(/[^,]+/, 'replace') 
Смежные вопросы