Przeszukałem sieć pod kątem mojego zapytania, ale nie dostałem odpowiedzi, która dokładnie pasuje do moich wymagań. Mam ciąg jak poniżej:Obsługa separatora ze znakami escape w Java String.split() metoda
A|B|C|The Steading\|Keir Allan\|Braco|E
moje wyjście powinno wyglądać jak poniżej:
A
B
C
The Steading|Keir Allan|Braco
E
Moje wymogiem jest, aby pominąć separator jeśli jest poprzedzony sekwencji ucieczki. Próbowałem następujących wykluczających lookbehinds w String.split()
:
(?<!\\)\|
Ale mój problem jest separator zostaną zdefiniowane przez użytkownika końcowego dynamicznie i nie musi być zawsze |
. Może to być dowolny znak na klawiaturze (bez ograniczeń). W związku z tym mam wątpliwości, czy powyższe wyrażenie może zawieść dla niektórych znaków specjalnych, które nie są dozwolone w regex.
Chciałam tylko wiedzieć, czy jest to idealny sposób na zrobienie tego.
Dzięki za szybką odpowiedź. Ale chciałbym wiedzieć, czy wszystkie znaki specjalne są dozwolone w regex. Wszelkie wyjątki od tego? – user2757740
@ user2757740 Przeczytaj połączoną dokumentację 'Pattern.quote()'; pobiera ciąg znaków i usuwa wszystkie znaki specjalne. Nie ma żadnych wyjątków. – arshajii
To rozwiązało większość mojego pytania. Wielkie dzięki. Ale chciałem zaimplementować ten sam pattern.quote() również dla mojej sekwencji ucieczki. Ale, obawiam się, że to nie działa :((? user2757740