Я пытаюсь удалить точку только с конца каждого слова в заданном тексте. (В Java) , например:regex удалить точку с конца каждого слова в тексте
input: java html. .net node.js php.
output: java html .net node.js php
благодаря
Я пытаюсь удалить точку только с конца каждого слова в заданном тексте. (В Java) , например:regex удалить точку с конца каждого слова в тексте
input: java html. .net node.js php.
output: java html .net node.js php
благодаря
for(String str : input.split(" "))
{
if(str.charAt(str.len - 1) == '.')
str = str.substr(0, str.len - 2);
//do something with str
}
Я хотел бы избежать регулярных выражений, если это вообще возможно, поскольку они гораздо медленнее.
Вы знаете, что два' .' удалены из примера? – Qtax
* «Я пытаюсь удалить точку только с конца ** каждого слова ** в заданном тексте». * Возможно, ваш ответ должен упомянуть о предшествующем расщеплении ввода в словах. – afsantos
@Qtax Ах, я предположил, что это было одно слово ввода по какой-то причине. Я добавлю цикл, чтобы пройти через все введенные строки. – thatidiotguy
В зависимости от определения слова можно заменить:
(\w)\.(?!\S)
с $1
. Который удалит все .
в конце слова, за которым следует пробел или конец строки.
Вы можете сделать:
String repl = "java html. .net node.js php.".replaceAll("\\.(?!\\w)", "");
// java html .net node.js php
@EitanPerkal: Это работало для вас? – anubhava
Я тестировал на примере использования OPs, и он отлично работает. Работает и для моих нужд. Хороший ответ! –
Если вы собираетесь использовать регулярное выражение, я бы рекомендовал using a word boundary.
\.\B
Это соответствует буквальной точке в конце границы слова.
развернутого решения, основанное на ответе Qtax в:
String s = "java html. .net node.js php.";
System.out.println(s);
s = s.replaceAll("(\\w)\\.(?!\\S)", "$1");
System.out.println(s);
Выход:
java html .net node.js php
Вы можете показать свой код до сих пор? –
И что вы пробовали? – fge
'.' - специальный символ в регулярном выражении. Бегите так, как ''. 'Так для слов, заканчивающихся. '/ \ w \ ./ gi' –