Java 去掉包含URL的句子
我正在寻找一种方法来删除包含Java中URL的句子。请注意,我想删除整个句子,而不仅仅是URL 我找到了一种方法来做这件事,它是有效的,但我正在寻找一种更简单的方法来做这件事,也许只有一个正则表达式Java 去掉包含URL的句子,java,regex,string,Java,Regex,String,我正在寻找一种方法来删除包含Java中URL的句子。请注意,我想删除整个句子,而不仅仅是URL 我找到了一种方法来做这件事,它是有效的,但我正在寻找一种更简单的方法来做这件事,也许只有一个正则表达式 使用BreakIterator检测句子(可以以.?!)结尾: 使用正则表达式读取每一行并检测模式: . 如果找到,只需删除句子 在通过表达式之前,最好先打断/拆分句子 然后,这个表达式可能只返回那些没有URL的行(句子) ^(?!.*https?[^\s]+.*).*$ 在这里,我们将URL定义为
^(?!.*https?[^\s]+.*).*$
在这里,我们将URL定义为https?[^\s]+
试验
import java.util.regex.Matcher;
导入java.util.regex.Pattern;
最后一个字符串regex=“^(?!https?[^\\s]+.*$”;
final String=“对不起,我们今天不营业。请明天访问我们的网站:https://www.google.com. 谢谢您,祝您愉快!\n\n“
+“对不起,我们今天不营业。请明天访问我们的网站。谢谢,祝您愉快!\n\n”
+“对不起,我们今天休息。请明天访问我们的网站:https://www.goog. 谢谢您,祝您有愉快的一天!\n”;
最终模式=Pattern.compile(regex,Pattern.MULTILINE);
final Matcher Matcher=pattern.Matcher(字符串);
while(matcher.find()){
System.out.println(“完全匹配:+matcher.group(0));
对于(int i=1;i
在通过表达式之前,最好先打断/拆分句子
然后,这个表达式可能只返回那些没有URL的行(句子)
^(?!.*https?[^\s]+.*).*$
在这里,我们将URL定义为https?[^\s]+
试验
import java.util.regex.Matcher;
导入java.util.regex.Pattern;
最后一个字符串regex=“^(?!https?[^\\s]+.*$”;
final String=“对不起,我们今天不营业。请明天访问我们的网站:https://www.google.com. 谢谢您,祝您愉快!\n\n“
+“对不起,我们今天不营业。请明天访问我们的网站。谢谢,祝您愉快!\n\n”
+“对不起,我们今天休息。请明天访问我们的网站:https://www.goog. 谢谢您,祝您有愉快的一天!\n”;
最终模式=Pattern.compile(regex,Pattern.MULTILINE);
final Matcher Matcher=pattern.Matcher(字符串);
while(matcher.find()){
System.out.println(“完全匹配:+matcher.group(0));
对于(int i=1;i“(?”)(?特定URL,或任何URL?任何URL。可以以http/https/www/ftp,etcA特定URL,或任何URL?任何URL开头。可以以http/https/www/ftp,etc开头。正则表达式对句子完全没有任何说明。它匹配包含URL的行。我曾想过将它们拆分并缝合,但这是我通常试图避免的这是一个很好的替代方案。谢谢!那个正则表达式对句子完全没有任何说明。它匹配包含URL的行。我也曾想过拆分它们并缝合它们,但这是我一直试图避免的事情。这是一个很好的替代方案。谢谢!这很好,很有效!只是好奇,这是什么?)这很好,很有效!只是好奇,这是什么?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
final String regex = "^(?!.*https?[^\\s]+.*).*$";
final String string = "Sorry, we are closed today. Visit our website tomorrow at https://www.google.com. Thank you and have a nice day!\n\n"
+ "Sorry, we are closed today. Visit our website tomorrow at. Thank you and have a nice day!\n\n"
+ "Sorry, we are closed today. Visit our website tomorrow at https://www.goog. Thank you and have a nice day!\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
"(?<=^|[?!.])[^?!.]+" + urlRegex + ".*?(?:$|[?!.])"