Regex, чтобы заменить все после определенного символа?Джава - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть строка в формате, как «один / два / три», и мне нужна только первая (до первого слеша).Я попробовал это так:

if (text.contains("/")) {
        int i = text.indexOf("/");
        return text.subSequence(0, i).toString();
    }

Это решение работает, но я думаю, что было бы лучше написать простую text.replace() функцию.Попробовал это регулярное выражение "\\/(.*)", но оно не сработало.

Ответы [ 3 ]

0 голосов
/ 28 декабря 2018

Вы можете попробовать приведенный ниже код, который он заменит после первого слэша,

 text.replaceAll("\\/[^\\/].*", "")
0 голосов
/ 28 декабря 2018

замена не будет работать в этом случае используйте это.

return text.replaceAll("/.", "");
0 голосов
/ 28 декабря 2018

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

Вы можете использовать replaceFirst:

 return text.replaceFirst("/.*", "");

(обратите внимание, что естьбежать нечего и группа не нужна)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...