Szukaj…


Składnia

  • Zbuduj nazwaną grupę przechwytywania ( X jest wzorem, który chcesz przechwycić):

    (? 'name'X) (? X) (? PX)

  • Odwołaj się do nazwanej grupy przechwytywania:

    $ {nazwa} \ {nazwa} g \ {nazwa}

Uwagi

Python i Java nie pozwalają wielu grupom na używanie tej samej nazwy.

Jak wygląda nazwana grupa przechwytywania

Biorąc pod uwagę smaki, nazwana grupa przechwytywania może wyglądać następująco:

(?'name'X)
(?<name>X)
(?P<name>X)

X jest wzorem, który chcesz uchwycić. Rozważmy następujący ciąg:

Pewnego razu była śliczna dziewczynka ...

Pewnego razu był jednorożec w kapeluszu ...

Dawno, dawno temu była łódź z piracką flagą ...

W którym chcę uchwycić temat ( kursywą) każdej linii. Użyję następującego wyrażenia .* was a (?<subject>[\w ]+)[.]{3} .

Pasujący wynik pomieści:

MATCH 1
subject    [29-47]    `pretty little girl`
MATCH 2
subject    [80-99]    `unicorn with an hat`
MATCH 3
subject    [132-155]    `boat with a pirate flag`

Odwołaj się do nazwanej grupy przechwytywania

Jak możesz (lub nie wiesz), możesz odwoływać się do grupy przechwytywania za pomocą:

$1

1 oznacza numer grupy.

W ten sam sposób możesz odwoływać się do nazwanej grupy przechwytywania za pomocą:

${name}
\{name}
g\{name}

Weźmy poprzedni przykład i zamień mecze na

The hero of the story is a ${subject}.

Otrzymamy wynik:

The hero of the story is a pretty little girl. 
The hero of the story is a unicorn with an hat. 
The hero of the story is a boat with a pirate flag.


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow