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

标签 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" + 
            "Quieren hacerse los legalistas\r\n" + 
            "#Verguenza  Respete los derechos del niño @MiguelLifschitz @DataLifschitz https//t/MUY0bj2qMT");

output:

我不知道为什么对于某些文本它有效而对于其他文本则无效

最佳答案

正则表达式中的 .*? 将寻找一个最小区域,但实际上没有,因此它将无法在后面找到空格,这不是好方法去做这件事

<小时/>

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

  • 网址以http开头
  • 网址不包含空格

因此您的正则表达式可以是:http\S*(http 后跟多个非空格 字符)

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

关于java - 使用java从文本中删除url时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50304866/

相关文章:

java - 一段时间后AsyncTask setMessage android java

java - ActivityTwo.java没有算

java - 如何使用maven和JAVA在robotframework中重新运行测试失败的套件

javascript - 如何编写正则表达式来获取不带双引号的文本?

c# - 排除除换行符之外的不可打印字符

html - 搜索某些元素内的任何内容

java - 在Java中使用HttpPost登录?

php - 用php函数替换模板中的占位符

javascript - Mongoose.js 和使用 Regexp 的查询对象

java - 如何只获取 JSON 中大数组的第一个元素?