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