作业:利用正则表达式将网页内容替换为OMIT

本文介绍了一个Java函数,用于屏蔽输入字符串中的网页链接,只保留文本内容。该函数通过正则表达式匹配并替换链接,使用了OMIT作为替换字符串。详细解释了匹配规则及函数实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
 * week_02_作业二
 * @detail:完成clean函数,其功能为:屏蔽字符串参数text中的网页链接信息,并按照返回屏蔽后的结果
 * @返回格式:对第1-n个链接替换为OMIT1-OMITn,返回替换后的字符串
 * @author: vanxin
 * @email: vanxinliu@gmail.com
 * @version: 2.0
 * @改进了匹配的正则表达式,使之对域名为0个字符的放行,如www..com,http://.com
 * @completed time: 2013/10/7
 */
import java.io.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class UnLinker
{
/*
* @定义匹配的正则表达式格式
* @前缀为:http://, http://www., www. 三种情况中的一种
* @域名包括一个或者多个字符,每个字符是一个英文字母(大小写均可),或者一个数字(0-9),或者一个句点(.)
  * @后缀为.com, .org, .edu, .info, .tv五种中德一种
*/
static final String REGEX_HTTP = "(http://www.|http://|www.)([A-Za-z0-9.]+)(.com|.org|.edu|.info|.tv)";
/*
* 定义用来替换的字符串
*/
static final String Replace_String = "OMIT";
/*
* 主要匹配替换函数
*/
String clean(String text)
{
//计数器
int count = 1;
//结果返回字符串
String Answer;
//编译完成所需格式
Pattern p = Pattern.compile(REGEX_HTTP);
Matcher m = p.matcher(text);
//按照语法格式需要定义缓冲区
StringBuffer sb = new StringBuffer();
//对字符串进行扫描,将符合格式的替换
while(m.find()){
m.appendReplacement(sb,Replace_String+count);
count++;
}
m.appendTail(sb);
//结果转换
Answer = sb.toString();
return Answer;
}
/*
* 主函数
*/
public static void main(String[] args) throws IOException
{
Scanner in = new Scanner(new File("UnLinker.in"));
String text;
UnLinker ul = new UnLinker();
while (in.hasNextLine())
{
text = in.nextLine();
System.out.println(ul.clean(text));
}
in.close();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值