/ / Jak usunąć podciąg po określonym słowie? - ruby, regex, gsub

Jak usunąć podłańcuch po określonym słowie? - ruby, regex, gsub

Mam długi ciąg i chcę usunąć część ciągu, która pojawia się po słowie, i szukam polecenia gsub!, Które to robi. Byłbym wdzięczny, gdybyś mógł to podać.

Na przykład: Wiem, że polecenie usunięcia części ciągu (ciąg nazywany jest treścią) poprzedzającego słowo „ciało” to:

 contents.gsub!(/.*?(?=body)/im, "")

Dzięki.

Odpowiedzi:

1 dla odpowiedzi № 1

Ten kod:

"this has a word in it".gsub! /(word).*/, $1

Zmieni ciąg na "this has a word"

„Słowo” w nawiasach to pierwszy argument zwracany przez wyrażenie regularne, i $1 zwraca ten argument.

Zobacz dokumenty Ruby na gsub


0 dla odpowiedzi nr 2

Przechodzenie przez wyrażenie regularne, które wymaga / w ciele do ucieczki, zakładam, że masz na myśli każdego dnia

contents = "Stuff before </body> stuff after"
contents.gsub(/(?<=/body>).+/, "")
=> "Stuff before </body>"