2011-12-24 10 views
5

Mam listę liczb między nawiasami kwadratowymi, i muszę dodać słowa przed i po dokładnych liczb (tj. Zachować te same liczby). Używam notatnika ++ do zastąpienia, ale jeśli masz rozwiązanie z innym programem, radzę.wyrażenie regularne do dodawania znaków przed i po numerach

Przykład:

text [121] othertext 
moretext [16] othertextmore 
andtext [5940] othertextplus 

wynik:

text xxxxxxxxx [121] xxxxxxxxx othertext 
moretext xxxxxxxxx [16] xxxxxxxxx othertextmore 
andtext xxxxxxxxx [5940] xxxxxxxxx othertextplus 

Liczby są oczywiście \d+ ale chcę powiedzieć to, aby zachować te same numery przy poszukiwaniu.

+0

Chociaż regex parapet pozostanie taka sama, kod ulegnie zmianie: w jakim języku? –

Odpowiedz

16

sprawdź co: (\[\d+])

Zamień: xxxxxxxxx \1 xxxxxxxxx

enter image description here

+0

idealny .. dzięki :) – Mike

+1

@Mike - Możesz zaakceptować jako odpowiedź, klikając na kleszcz po lewej stronie. – manojlds

+0

Nie ma potrzeby używania nawiasów, jeśli zamierzasz wykorzystać cały mecz mimo to - zamień na 'xxxxxx \ 0 xxxxxx'. –

2

C#:

line=Regex.Replace(line,@"([^\[])(\[\d+\])(.*)","$1xxxxxxxxx $2 xxxxxxxxx$3"); 

Inne języki analogiczne

0

Wyrażenie regularne:

Find regex = \[\d+\] 
Replace regex = xxxxxxxxx$&xxxxxxxxx 


Patrz: regexr

Powiązane problemy