这样的正则表达式怎么写,立即给分!

Philzzf 2003-01-03 09:30:09
例如
一个文本中包括:
http://www.sina.com.cn
www.163.com
<a href="http://www.sina.com.cn" target="_blank">http://www.sina.com.cn</a>
<img href="http://www.163.com/image.gif">

要求把第一行和第二行的数据替换成超连接的形式,第三、四行不变
即替换后的格式如下:
<a href="http://www.sina.com.cn" target="_blank">http://www.sina.com.cn</a>
<a href="www.163.com" target="_blank">www.163.com</a>
<a href="http://www.sina.com.cn" target="_blank">http://www.sina.com.cn</a>
<img href="http://www.163.com/image.gif">

该怎么写这样的正规表达式呢?
在线等,来者有分!
...全文
70 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
希偌 2003-01-04
  • 打赏
  • 举报
回复
yes
编译正则表达式的时候,指定Perl5Compiler.CASE_INSENSITIVE_MASK选项,使得匹配操作不区分大小写。
weblive 2003-01-04
  • 打赏
  • 举报
回复
检查开头的字符是不是"<a ",如果是就不用换了,如果不是就把这行数据存入一个变量,然后加工后写入新数据!!!!上面的办法也可以,但它要至少读文件两次!
gdsean 2003-01-03
  • 打赏
  • 举报
回复
处理的办法:
先去掉所有<a标签,然后统一处理www的情况

1:去掉所有连接
<a和</a的表达式很简单

2:转换所有网址:
URL统一表达,稍微想了一下:(http)*www.[^\\s]+
http代表一个确定的group,*为可以有也可以无
[^\\s]+代表除了空格以外的所有字符
思路如此,具体语法也不一定对,提供参考;)
888888888888 2003-01-03
  • 打赏
  • 举报
回复
同意楼上说法
apple1978 2003-01-03
  • 打赏
  • 举报
回复
UP !
gdsean 2003-01-03
  • 打赏
  • 举报
回复
beyond_xiruo(希偌) :
[h|H][T|t][T|t][P|p]我认为是无谓的
正则表达式编译器可以指定大小写不敏感
你这样写无疑增加了表达式的复杂度

pqds 2003-01-03
  • 打赏
  • 举报
回复
xycleo 2003-01-03
  • 打赏
  • 举报
回复
谢谢 beyond_xiruo(希偌)

今天学到东西了,我发了个帖!你来拿分吧
helpall 2003-01-03
  • 打赏
  • 举报
回复
用这个pattern更好:
Pattern ptn = Pattern.compile( "^http.*cn$|^www.*com$",Pattern.CASE_INSENSITIVE);
helpall 2003-01-03
  • 打赏
  • 举报
回复
String a[]={"http://www.sina.com.cn",
"HTTP://www.sina.com.cn",
"www.163.com",
"WWW.163.com",
"<a href=\"http://www.sina.com.cn\" target=\"_blank\">http://www.sina.com.cn</a>",
"<img href=\"http://www.163.com/image.gif\">"};
Pattern ptn = Pattern.compile("^[http|HTTP].*cn$|^[www|WWW].*com$");
for(int i = 0; i < a.length;i++){
Matcher m = ptn.matcher(a[i]);
if(m.matches())
System.out.println("<a href=\""+m.group()+"\" target=\"_blank\">"+m.group()+"</a>");
else
System.out.println(a[i]);
}
lkenshin 2003-01-03
  • 打赏
  • 举报
回复
俺犯错了,道歉:)
希偌 2003-01-03
  • 打赏
  • 举报
回复
关于java的正则表达式,请参阅
http://www.fanqiang.com/a4/b5/20011113/0808001561.html
xycleo 2003-01-03
  • 打赏
  • 举报
回复
谁能帮我解释一下“正则表达式”??他有什么用??

我是初学者!!有分送
lkenshin 2003-01-03
  • 打赏
  • 举报
回复
String str ;
String head = "<a href=\"";
String midd = "\" target=\"_blank\">";
String end = "</a>";
(str.indexOf("href=") ==-1 )?head+str+midd+end:str;
仅供参考:)
希偌 2003-01-03
  • 打赏
  • 举报
回复
(http)不妥,应改为[h|H][T|t][T|t][P|p]

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧