Как я могу заменить все специальные символы в URL, используя регулярное выражение Java? - PullRequest
2 голосов
/ 13 августа 2011

Я пытаюсь использовать регулярное выражение для преобразования специальных символов в URL.Вот мой пример кода:

String formatUrl = "index.php?title=Test/enu/test/Tips_%26_Tricks/Tips_and_Tricks";
formatUrl = formatUrl.replaceAll("[^a-zA-Z0-9]" , "-");

Я пытаюсь преобразовать специальные символы в URL-адресе, например? _%.в "-" исключая "/".

Регулярное выражение в моем коде преобразует все, что в результате получается, в

index-php-title-Test-enu-test-Tips--26-Tricks-Tips-and-Tricks

Но я хочу, чтобы оно было

index-php-title-Test/enu/test/Tips--26-Tricks/Tips-and-Tricks

Любые указатели будут оценены.

Ответы [ 3 ]

9 голосов
/ 13 августа 2011

Вы можете просто добавить свой / в регулярное выражение:

"[^a-zA-Z0-9/]"
6 голосов
/ 13 августа 2011
formatUrl = formatUrl.replaceAll("[^a-zA-Z0-9/]" , "-");
2 голосов
/ 13 августа 2011

Мне интересно, чего ты пытаешься достичь. Почему бы просто не декодировать URL?

final String url = "index.php?title=Test/enu/test/Tips_%26_Tricks/Tips_and_Tricks";
final String decoded = java.net.URLDecoder.decode(url, "UTF-8");
System.out.println(decoded); // Prints index.php?title=Test/enu/test/Tips_&_Tricks/Tips_and_Tricks
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...