我想删除包含 http 或 https 的字符串。我有以下代码段: String line="abc http://someurl something https://someurl"; if (line.contains("https") || line.contains("http")) { System.out.println(line); String x = line.replaceAll("https?://.*?\\s+", " "); System.out.println(x); }输出是:(abc something https://someurl不删除结束网址)期望的输出是: abc something我猜它是对正则表达式的简单更改...编辑:抱歉,前面的示例在 http 之后没有包含实际的 url。
1 回答
catspeake
TA贡献1111条经验 获得超0个赞
你的正则表达式是
https?://.*?\\s+
最后一个标记\s+
表示一个或多个空格字符。如果要删除不一定以空格结尾的子字符串,则可以用*
代替+
-*
重复前面的标记零次或多次:
String x = line.replaceAll("https?://.*?\\s*", " ");
也就是说,如果您拥有的 URL 有效并且不包含任何空格字符,则将非空格字符与\S
空字符串匹配并替换为空字符串可能更有意义,而不是查找空格字符,匹配它们,然后然后用另一个空格替换:
String x = line.replaceAll("https?://\\S*", "");
添加回答
举报
0/150
提交
取消