Wynik zastosowania wyrażenia regularnego jest dla mnie zaskający: dlaczego są zaznaczane wszystkie znaki?
Link do przykładu to https://regex101.com/r/cO8lqs/9344.
Wynik zastosowania wyrażenia regularnego jest dla mnie zaskający: dlaczego są zaznaczane wszystkie znaki?
Link do przykładu to https://regex101.com/r/cO8lqs/9344.
A co w ogóle chcesz znaleźć?
Zadaniem jest znalezienie znaczników html co można zrobić przez (<.*?>)
.
Potrzebuję wiedzieć dlaczego dodanie znaku zapytania (<.*?>)?
powoduje, iż zaznaczone są też wszystkie znaki.
A umiesz opisać/wytłumaczyć co robi zewnętrzny kwantyfikator ?
w tym wyrażeniu?
Znak zapytania ?
oznacza że poprzedzający ciąg będzie zaznaczany zero lub jeden raz.
No właśnie, a co to za znak ma być?
(<.*?>)
wyrażanie regularne ma szukać znaku <
a następnie jakiegokolwiek znaku .
- ma to robić gdy napotka najbliższy znak >
i tak działa.
Nie potrafię zrozumieć do daje w wyrażeniu (<.*?>)?
znak zapytania na końcu, który powinien działać jak opisałem powyżej a działa zupełnie inaczej.
A ja nie potrafię zrozumieć po co go tam umieszczasz, co chcesz tym osiągnąć?
Znak ? oznacza jedno lub zero wystąpień. Stąd można traktować nawias tak jakby był albo jakby go nie było.
Swoją drogą ta strona źle działa, bo dla pustego ciągu zwraca “no matches” a dla (<.*?>)?
że są dopasowania 44 dopasowania. Wygląda tak, że na sztywno zakłada pusty ciąg Regex to no matches, ta strona wygląda, że dziala lepiej: https://regexr.com/4bvet
PS Lektura na dziś: https://pl.wikipedia.org/wiki/Wyrażenie_regularne
Ja dyskusją starałem się nakierować Cię na to co dał Ci na tacy kostek .
Swoją drogą lepszą wersją wyrażenia może się okazać: (<.+?>)
bo nie będzie zaznaczał pustych nawiasów - <>
, plus warto jeszcze upewnić się, że pomiędzy ostrymi nawiasami nie ma spacji .