请各位一个正则表达式的问题.

分治实践 2008-06-16 09:56:41
String str = "深圳中集专用车有限公司隶属于十年绩优蓝筹股——"
+ "中国国际海运集装箱(集团)http://www.cimc.com 股份有限公司,是中集车辆(集团)"
+ "有限公司的全资下属企业,是中集车辆集团在华南地区" + "的半挂车和改装车产业的大型生产基地。 ";


怎么样才能把http://www.cimc.com 并加上<a href=""></a>
...全文
135 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheer1l1lg 2008-06-16
  • 打赏
  • 举报
回复
应该是我粘贴的问题

String regex ="((http://)?([a-z]+[.])|(www.))\\w+[.]([a-z]{2,4})+((/[\\S&&[^,;\u4E00-\u9FA5]]+)+)?([.][a-z]{2,4}+|/?)";
分治实践 2008-06-16
  • 打赏
  • 举报
回复
我要的最终结果就是你的帖出来的...

但是代码到我这里根本就匹配不出网址.
跟我自己写的一样的情况..
分治实践 2008-06-16
  • 打赏
  • 举报
回复
import java.text.MessageFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

这个不会错的
cheer1l1lg 2008-06-16
  • 打赏
  • 举报
回复
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.text.MessageFormat;
分治实践 2008-06-16
  • 打赏
  • 举报
回复
深圳中集专用车有限公司隶属于十年绩优蓝筹股——中国国际海运集装箱(集团)http://www.cimc.com 股份有限公司,是中集车辆(集团)有限公司的全资下属企业,是中集车辆集团在华南地区的半挂车和改装车产业的大型生产基地。 <br/>
深圳中集专用车有限公司隶属于十年绩优蓝筹股——中国国际海运集装箱(集团)http://www.cimc.com 股份有限公司,是中集车辆(集团)有限公司的全资下属企业,是中集车辆集团在华南地区的半挂车和改装车产业的大型生产基地。

晕.一样的代码我的结果输出怎么不是一样的?
cheer1l1lg 2008-06-16
  • 打赏
  • 举报
回复
你要的不是就下面这种转型吗?
深圳中集专用车有限公司隶属于十年绩优蓝筹股——中国国际海运集装箱(集团)<a href='http://www.cimc.com'>http://www.cimc.com</a> 股份有限公司,是中集车辆(集团)有限公司的全资下属企业,是中集车辆集团在华南地区的半挂车和改装车产业的大型生产基地。


public static void main(String args[])
{
String str1 = "深圳中集专用车有限公司隶属于十年绩优蓝筹股——"
+ "中国国际海运集装箱(集团)http://www.cimc.com 股份有限公司,是中集车辆(集团)"
+ "有限公司的全资下属企业,是中集车辆集团在华南地区" + "的半挂车和改装车产业的大型生产基地。 ";
String [] str ={
str1
};
for (String s:str)
{
//System.out.format("%-50s%b\n", s,parse(s));
System.out.println(s+"<br/>");
//parse(s);
System.out.println(parse(s));
//System.out.println("---------------------------------");
}
}
//(http:)?(//)?([a-z]+[.])?\\w+[.]\\w+(/|[.][a-z]+)
//(http:)?(//)?([a-z]+[.])?\\w+[.]([a-z])+
//(http://)?(//)?([a-z]+[.])?\\w+[.]([a-z])+((/\\w+)+)?([.][a-z]+|/?)
//((http://)([a-z]+[.])|(www.))\\w+[.]([a-z])+((/\\w+)+)?([.][a-z]{1}+|/?)
//((http://)([a-z]+[.])|(www.))\\w+[.]([a-z]{2,4})+((/\\w+)+)?([.][a-z]{2,4}+|/?)
static String regex ="((http://)([a-z]+[.])|(www.))\\w+[.]([a-z]{2,4})+((/[\\S&&[^,;\u4E00-\u9FA5]]+)+)?([.][a-z]{2,4}+|/?)";
static String A1 ="<a href={0}>";
static String A2 ="</a>";
static String parse(String title)
{
StringBuilder sb = new StringBuilder(title);
Pattern pat =Pattern.compile(regex);
Matcher mat = pat.matcher(title);
int index = 0;
int index1 = 0;
while (mat.find())
{
String url = mat.group();
System.out.println(url);
if (url.indexOf("http://") != 0)
url = "http://"+url;
Object obj[] ={"'"+url+"'"};
String a = MessageFormat.format(A1, obj);
int l = a.length();
index += index1;
sb.insert(mat.start()+index, a);
index += l;
sb.insert((mat.end())+index, A2);
index1 = A2.length();
}
return sb.toString();
}
分治实践 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cheer1l1lg 的回复:]
和我项目一样,给你原码
static String regex ="((http://)([a-z]+[.]) ¦(www.))\\w+[.]([a-z]{2,4})+((/[\\S&&[^,;\u4E00-\u9FA5]]+)+)?([.][a-z]{2,4}+ ¦/?)";
static String A1 =" <a href={0} target='_blank'>";
static String A2 =" </a>";
/**
* 给发布的消息加超链接
*
* @param msg
* @return
*/
public static String checkMsg(String msg)
{
StringBuilder sb = new StringBuilder(msg);
P…
[/Quote]
谢谢!.我试了你的方法好像不能用.
		String str = "深圳中集专用车有限公司隶属于十年绩优蓝筹股——"
+ "中国国际海运集装箱(集团)http://www.cimc.com 股份有限公司,是中集车辆(集团)"
+ "有限公司的全资下属企业,是中集车辆集团在华南地区" + "的半挂车和改装车产业的大型生产基地。 ";

你可试试把上面的字符串传入进去.
tanlingyun 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 vipjustin 的回复:]
并加上 <a href=""> </a>这个不管
就是说要把那个字符串里面的"http://www.cimc.com"的取出来.
用正则表达式
[/Quote]
http://www.*com
cheer1l1lg 2008-06-16
  • 打赏
  • 举报
回复
和我项目一样,给你原码
static String regex ="((http://)([a-z]+[.])|(www.))\\w+[.]([a-z]{2,4})+((/[\\S&&[^,;\u4E00-\u9FA5]]+)+)?([.][a-z]{2,4}+|/?)";
static String A1 ="<a href={0} target='_blank'>";
static String A2 ="</a>";
/**
* 给发布的消息加超链接
*
* @param msg
* @return
*/
public static String checkMsg(String msg)
{
StringBuilder sb = new StringBuilder(msg);
Pattern pat =Pattern.compile(regex);
Matcher mat = pat.matcher(msg);
int index = 0;
int index1 = 0;
while (mat.find())
{
String url = mat.group();
if (url.indexOf("http://") != 0)
url = "http://"+url;
Object obj[] ={"'"+url+"'"};
String a = MessageFormat.format(A1, obj);
int l = a.length();
index += index1;
sb.insert(mat.start()+index, a);
index += l;
sb.insert((mat.end())+index, A2);
index1 = A2.length();
}
return sb.toString();
}
分治实践 2008-06-16
  • 打赏
  • 举报
回复
并加上 <a href=""> </a>这个不管
就是说要把那个字符串里面的"http://www.cimc.com"的取出来.
用正则表达式
burningice44 2008-06-16
  • 打赏
  • 举报
回复
你在Java代码里怎么加啊;
加了也没超链啊,
你要放在什么地方,
说具体点儿
分治实践 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 cheer1l1lg 的回复:]
应该是我粘贴的问题

Java code
String regex ="((http://)?([a-z]+[.])|(www.))\\w+[.]([a-z]{2,4})+((/[\\S&&[^,;\u4E00-\u9FA5]]+)+)?([.][a-z]{2,4}+|/?)";
[/Quote]
谢谢.可以了

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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