Regex, aby zastąpić znaki

1

Mam następujący przykład, 'H2J','H3N','H3N','H2J','H2P','H2K','H2J','H2K','H3N'ale chcę, aby (H2J),(H3N),(H3N),(H2J),(H2P),(H2K),(H2J),(H2K),(H3N)każdy mógł mi pokazać, jakie wyrażenie regularne zastąpiłoby pojedyncze cudzysłowy nawiasami kwadratowymi?

Używam TextWrangler na Macu.

użytkownik3591436
źródło
1
Jestem zaskoczony, widząc, że nikt tu nie wspomniał, że nie jesteśmy usługą pisania kodu . Zwykle znajduję to w większości pytań
Prasanna,
@Prasanna Tak, to był mój błąd, wpadłem w problem.
Paul
Rozumiem, że nie jest to usługa pisania kodu, ale pomaga jako brama do nauki lub rozpoczęcia uzyskiwania koncepcji z otrzymanej pomocy. Przynajmniej pobudza ciekawość i głód uczenia się, aby uzyskać taką samą odpowiedź, jaką udziela osoba udzielająca pomocy. Tak czy inaczej moje zdanie.
user3591436

Odpowiedzi:

1
 /'([A-Z0-9]+)'/\($1\)/g

To jest mecz

  1. za '
  2. Sekwencja jednego lub więcej alfanumerycznych [A-Z0-9]+
  3. za '

Sekwencja jest w nawiasie, dzięki czemu możemy ją uchwycić i wykorzystać w zastępstwie

Wymiana jest po prostu

  1. za (
  2. Sekwencja uchwycona powyżej $1
  3. za )

Tak więc w twoim edytorze wyszukiwane hasło to:

'([A-Z0-9]+)'

Termin zastąpienia to:

 \($1\)

I zamień wszystko. Sprawdź format zastępowania grup, w niektórych edytorach jest on \1zamiast$1

Paweł
źródło
Dzięki Paul, czy wyrażenie regularne powinno być /'([A-Z0-9]+)'\/\($1\)/gdodatkowym lewym ukośnikiem. Jeśli tak, to nie otrzymuję żadnych dopasowań? Jeśli nie, nie dostanę żadnego dopasowania. `
user3591436
Nie, dodatkowy ukośnik nie jest potrzebny. Pamiętaj, że jest to wyrażenie regularne o standardowym formacie, więc możesz go podzielić, używając go w edytorze. Zaktualizuję.
Paul
Dzięki Paul, rozumiem już teraz. Twoja sugestia zadziałała, a ja również skorzystałem z innej witryny regextester.com, aby wprowadzić dalsze zmiany - co polecił inny użytkownik tutaj.
user3591436,