obciąć ciąg Oto co używam:Wyrażenie regularne obciąć ciąg
String test1 = "this is test truncation 1.pdf";
String p1 = test1.substring(0, 10) + "...";
System.out.println(p1);
Wyjście jest „to jest te ...” Jak mogę uzyskać dostęp do rozszerzenia nazwy pliku, tak aby wyjście staje się: "to jest ... pdf" Mogę użyć metody podłańcuchowej, aby uzyskać dostęp do ostatnich trzech znaków, ale inne rozszerzenia plików mogą mieć 4 znaki długości, takie jak .aspx
Czy istnieje wyrażenie regularne, z którego mogę korzystać tak, że "to jest obcięcie testowe 1.pdf" staje się "to jest te ... pdf"
dziękuję, czy możesz podać szybkie wyjaśnienie tego wyrażenia? –
Oczywiście, więc zasadniczo zbierasz dwie grupy (1 $ i 2 $) z pasującego wyrażenia i zastępujesz je w nowym. '(. {0,10})' jest pierwszą grupą, "dopasuj co 0 do 10 razy". Druga grupa to '(\\ .. +)', co oznacza "kropkę, a następnie co najmniej raz". Ostatnią częścią triku jest umieszczenie '. *' W środku, co jest chciwym dopasowaniem, które będzie pasować tak dużo, jak to tylko możliwe, jednocześnie zachowując ostatnią grupę. Więc nawet jeśli masz wiele kropek w środku nazwy, '. *' Je po prostu zjedzą. –