2011-10-18 9 views
8

Potrzebuję wzorca (wyrażeń regularnych java), który pasuje, jeśli istnieje przecinek po kluczu lub kluczu na końcu wiersza. tj powinien pasować zarówno z poniższych:Symbol LUB koniec linii wzorca

1. xxxkey,yyy 
2. xxxkey 

Ive próbował [\\,$] wzór, ale to nie działa.

Odpowiedz

11

$ w klasie postaci traci swoje specjalne znaczenie. Użyj następujących zamiast:

key(,|$) 

Jeśli nie wiedzieć, czy istnieje przecinek, można używać non-przechwytywania grupę Zamiast:

key(?:,|$) 
+0

Jak byś znaki o specjalnym znaczeniu wewnątrz klas postaci? – Oliver

+0

DZIĘKUJEMY !!!!!!)) – shift66

+0

@Oliver: To nie jest tylko kwestia ucieczki od '$'. Ponieważ jest raczej kotwicą niż postacią, nie sądzę, że możesz w ogóle wprowadzić klasę postaci * bez utraty specjalnego znaczenia. W każdym razie zobacz http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html dla składni regex Java. – NPE

1

Spróbuj tego ...

"xxxkey(?:,\\w*)?$" 

lub -

"xxxkey(?:,.*)?$" 

lub -

"xxxkey(?:,|$)" 

zależności od potrzeb

0

, to postać, ale $ jest wyjątkowy, nie jest to znak.

Wypróbuj ,?, co oznacza jeden przecinek lub bez przecinków i wykonaj to z $.

Powiązane problemy