Проблемы с удалением URL из текста с использованием Java - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь удалить URL из некоторых строк, которые я получаю из твиттера.Код, который я использую:

test.replaceAll("http.*?\\s", ""));

Проблема в том, что когда я пытаюсь найти некоторые строки, он не работает, например:

String cuatro = ("#TodosPorKiKi El plan de flia solidaria No Puede exceder los 6meses. La justicia de Santa Fe lo abandonó 2 años y ahora\r\n" + 
            "Quieren hacerse los legalistas\r\n" + 
            "#Verguenza  Respete los derechos del niño @MiguelLifschitz @DataLifschitz https//t/MUY0bj2qMT");

output:

Я не знаю, почемудля одного текста это работает, а для другого нет

1 Ответ

0 голосов
/ 12 мая 2018

.*? в вашем регулярном выражении будет искать минимальную зону, которая на самом деле не будет ни одной, поэтому она не сможет найти пробел после, и это не очень хороший способ сделать это


Вам нужно сосредоточиться на 2 простых свойствах

  • url начинается с http
  • url не содержит spaces

Таким образом, ваше регулярное выражение может быть: http\S* ( http , за которым следует несколько непробельных char)

String cuatro = ("#TodosPorKiKi El plan de flia solidaria No Puede exceder los 6meses. https//t/MUY0bj2qMT" +
            " La justicia de Santa Fe lo abandonó 2 años y ahora\r\n" +
            "Quieren hacerse los legalistas\r\n  https//t/MUY0bj2qMT" +
            "#Verguenza  Respete los derechos del niño @MiguelLifschitz @DataLifschitz https//t/MUY0bj2qMT");
String cleaned = cuatro.replaceAll("http\\S*", ""); 
System.out.println(cleaned);    // I added multiple url in the String, for you can see it remvoes all
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...