Wpis z mikrobloga

Mircy, czy możliwe jest stworzenie wyrażenia regularnego które będzie szukało określonego wyrazu?

Druga część pytania - czy jeśli już mam regex który szuka dwóch wyrazów, to czy możliwe jest stworzenie takiego wyrażenia, które je pogrupuje tak, że w jednej grupie będzie dany string i liczba która się pojawia po nim (nie bezpośrednio) i w drugiej grupie to samo tylko z drugim stringiem i drugą liczbą?

Z której strony ugryźć ten temat? Gdzie znajdę materiały które mnie wtajemniczą w rozwiązanie tego?

#programowanie #wyrazeniaregularne #regex #python #pytaniedoeksperta #pomocy #informatyka
  • 9
@tamian:
Jeśli dobrze rozumiem - powiedzmy, że w tekście szukasz słów 'adam' oraz 'ewa' oraz liczb po nich.
Masz: "adam mial 23 lata, natomiast ewa miala dopiero 17 lat, kiedy się poznali
I chcesz otrzymać coś w stylu: ['adam', 23], ['ewa', 17] ?
@venomik: Genialne! Wielkie dzięki! W sumie to gotowe rozwiązanie jest dla mnie tylko połową sukcesu... Chciałbym się nauczyć sam pisać wyrażenia regularne, ale nie mam pojęcia gdzie mogę zacząć się uczyć. Chodzi o podstawy podstaw. Byłbyś w stanie polecić jakieś sprawdzone źródło?

A samo wyrażenie działa idealnie, dokładnie tak jak sobie to wymarzyłem ;)
@tamian: Twoje szczęście, że jak na bordo przystało w piątek w nocy mogę siedzieć na wykopie i pomagać w programowaniu ;)

A tak poważniej. Jako wprowadzenie bardzo spoko jest ten tutorial:
https://regexone.com
Bo automatycznie możesz sobie ćwiczyć przy nim.
Jak chcesz sobie ćwiczyć samodzielnie to polecam stronkę: https://regex101.com/
Ma kilka zalet:
- zaznacza co pasuje, ładnie kolorując całość
- automatycznie wyjaśnia używane przez Ciebie elementy składni wyrażenia regularnego
- prezentuje szczegóły
@venomik: Dziękuję ślicznie. O tym tutorialu nie wiedziałem, natomiast o regex101.com wiedziałem i testowałem na nim już kilka wyrażeń, również teraz próbowałem wyczarować coś użytecznego, ale nieskutecznie.
Właśnie chyba największy problem mam ze zrozumieniem logiki wyrażeń regularnych. Nikt mi tego dobrze nie przedstawił / nie trafiłem na dobry tutorial dla laika. Przerobie to co na regexone.com i zobaczymy jak to będzie :)
Faktycznie, jak przedstawiłeś krok po kroku swój regex, to
po co opakowujesz sekwencje kwadraciakami? \D+(\d+) zrobi dokładnie to samo.


@luzny_lori:
Bo początkowo miałem tam [a-zA-Z\s] zamiast \D (bo z takich wyrażeń regularnych muszę częściej korzystać). Ale po chwili namyslu uznałem, że @tamian niekoniecznie i zmieniłem na \D i \d, tylko już nawiasów nie usunąłem.

@tamian: Przyjdzie z czasem. I wcale nie tak odległym - przerobisz kilkanaście zadań na wyrażeniach regularnych to nagle ich pisanie zacznie być dość naturalne.
Za
@venomik: Hmm... przerabiam już ten regexone.com i idzie całkiem nieźle :D
W którym miejscu okłamałeś? Czyżby chodziło o nawiasy okrągłe? (nie wiem, strzelam xd)