使用java从文本中删除url时出现问题

使用java从文本中删除url时出现问题,java,regex,Java,Regex,我正在尝试从twitter上获取的一些字符串中删除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" +

我正在尝试从twitter上获取的一些字符串中删除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:
我不知道为什么有些文本有效,而另一些文本无效?在你的正则表达式中,你会寻找一个最小的区域,事实上它是没有的,所以它不能在后面找到一个空间,这不是一个好方法

您需要关注两个简单的属性

url以http开头 url不包含空格 因此您的正则表达式可以是:http\S*http后跟多个非空格字符


预期的输出是什么?由于url没有空格,您需要使用str.split..“”将字符串拆分为一个单词数组,并删除以str.startsWith.开头的元素。。方法http://orhttps://Since 您的正则表达式末尾包含\\s空格,这意味着如果URL位于输入的末尾,它将不起作用。
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