Strona 1 z 1

Wyrażenia regularne - co oznacza jeden z metaznaków?

: 15 stycznia 2011, 02:15
autor: kornicameister
Nie mogę znaleźć znaczenia jednego ze znaków użytych poniżej

Kod: Zaznacz cały

\b(\w+)\b\s+\1\b
Według przykładu to powinno pasować do ciągów, które są powtórzonymi słowami np.:

Kod: Zaznacz cały

debian debian
Jest dobrze do momentu \1 rozumiem o co chodzi w tym wyrażeniu, ale co robi tam \1 już nie.
C
zy chodzi o to, że \s {pusty znak} ma wystąpić dokładnie jeden raz, oraz "+" oznacza, że taka kombinacja powtórzonych słów może się pojawić wielokrotnie?

: 15 stycznia 2011, 09:06
autor: lessmian2
Odnosi się to do (\w+) - jest to wsteczna referencja do tego fragmentu wyrażenia regularnego. W miejscu \1 ma zostać dopasowane dokładnie to samo co w miejscu (\w+) - jeśli zostało tam dopasowane słowo debian, to \1 też będzie dopasowywała słowo debian.

PS.
Wygląda mi to na seda. Czy mam rację?

: 15 stycznia 2011, 09:24
autor: kornicameister
Niestety nie i niestety nie, byłeś blisko.
Ale dziękuję za pomoc.

W takim razie wyrażenie:

Kod: Zaznacz cały

\b(\w+)\b\s+
dawałoby możliwość dopasowania wzorca np. Debian to fajny system oparty na Linuksie?
a nie chyba, nie, bo sprawdziłem przed chwilą, tylko czemu?

Czyli \1 to jest zapamiętanie tego co wystąpiło w pierwszym nawiasie?

: 15 stycznia 2011, 11:07
autor: lessmian2
Tak, ogólnie rzecz ujmując, \1 to to, co w pierwszym nawiasie, \2 to co w drugim itd.