2015-05-02 17 views

Odpowiedz

17

The documentation for Matcher.lookingAt jasno wyjaśnia region lookingAt próbuje dopasować:

jak metoda matches ta metoda zawsze rozpoczyna się na początku regionu; w przeciwieństwie do tej metody nie wymaga dopasowania całego regionu.

Więc nie, lookingAt nie wymaga dopasowania całego ciągu. Jaka jest różnica między lookingAt a find? Z Matcher Javadoc overview:

  • Sposób matches stara się dopasować wejściowy przed całą sekwencję wzorca.
  • Metoda lookingAt próbuje dopasować sekwencję wejściową, zaczynając od początku, względem wzorca.
  • Metoda find skanuje sekwencję wejściową, szukając następnego podciągu pasującego do wzorca.

lookingAt zawsze zaczyna się od początku, ale find skanuje do pozycji wyjściowej.

W innym sposobie, ma ustalony początek i koniec, lookingAt ma ustalony początek, ale zmienny koniec, a find ma zmienny początek i koniec.

+0

Dzięki temu szczegóły są miłe! :) Również użycie dopasowań i wyglądanie Metody tutoriala dotykają również tego tematu: https://docs.oracle.com/javase/tutorial/essential/regex/matcher.html –

1

lookingAt() zawsze rozpoczyna sprawdzanie od początku i zwraca true, gdy pojawi się odpowiednik.

find() może znaleźć wiele dopasowań, ponieważ przechowuje swoją bieżącą pozycję, podobnie jak iterator.

O find() z http://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#find%28%29:

Metoda ta rozpoczyna się na początku regionu ten układ dopasowujący, albo, jeśli poprzednie wywołanie tej metody był udany i dopasowujący nie ponieważ został zresetowany, na pierwszy znak nie pasuje do poprzedniego meczu.

Powiązane problemy