Część kodu, nad którym pracuję, wykorzystuje szereg wyrażeń regularnych do wyszukiwania prostych wzorów łańcuchów (np. Wzory takie jak "foo [0-9] {3,4} pasek"). Obecnie używamy skompilowanych statycznie wzorców Java, a następnie wywołujemy Pattern#matcher
, aby sprawdzić, czy ciąg zawiera dopasowanie do wzorca (nie potrzebuję dopasowania, tylko wartość logiczna wskazująca, czy jest dopasowanie). Powoduje to zauważalną alokację pamięci, która ma wpływ na wydajność.Wysokowydajne, proste wyrażenia regularne Javy
Czy istnieje lepsza opcja dopasowania do wyrażenia regularnego Java, która jest szybsza lub przynajmniej nie przydziela pamięci za każdym razem, gdy przeszukuje ciąg w poszukiwaniu wzorca?
co na temat http://download.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#matches(java.lang.String) spowoduje zwrócenie wartości boolowskiej – ant
@ c0mrade. mecze () działa tak samo jak Pattern.matches (, ), który robi to samo co Pattern.compile () .matcher () .matches() –
Jared
@Jared poprawne, ale on powiedział, że był przy użyciu wzoru/matcher nie string pasuje – ant