怎么用正则来提取内容?马上给分

silverseven7 2007-04-05 10:41:15
怎么用正则来提取内容?马上给分

String str = “ffafd&#test1;afafdi&#test2;&#test3;1344343....”

怎么把test1 ,test2,test3 (就是&#和;之间的内容?)给提取出来,然后放到数组里面啊?
...全文
266 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
imA 2007-04-05
  • 打赏
  • 举报
回复
("&#([^&]*);")

表示的是:以“&#”开头以“;”结尾,中间包含任意多个字符(这些字符中不能包含“&”)

同理("&#([^;]*);")也是一样。

程序中的group(1)指的就是“[^&]*”内容。


这些在jdk的API文档中的java.util.regex.Pattern中都有说明!

可以自己查看一下详细的说明。
steveyue 2007-04-05
  • 打赏
  • 举报
回复
看字符串中是否包含&、#、(、[、^、;、]、*、)、字符;
silverseven7 2007-04-05
  • 打赏
  • 举报
回复
老大你说明一下("&#([^&]*);")的意思,分马上给
imA 2007-04-05
  • 打赏
  • 举报
回复
或者改为:
public class RegTest
{
/**
* @param args
*/
public static void main(String[] args)
{
java.util.regex.Pattern p=java.util.regex.Pattern.compile("&#([^;]*);");
java.util.regex.Matcher m=p.matcher("ffafd&#test1;afafdi&#test2;&#test3;1344343");
java.util.List list=new java.util.ArrayList();
while(m.find())
{
System.out.println(m.group(1));
list.add(m.group(1));
}
Object[] s=list.toArray();
for(int i=0;i<s.length;i++)
System.out.println(s[i]);
}
}



这样更合理一些
imA 2007-04-05
  • 打赏
  • 举报
回复
public class RegTest
{
/**
* @param args
*/
public static void main(String[] args)
{
java.util.regex.Pattern p=java.util.regex.Pattern.compile("&#([^&]*);");
java.util.regex.Matcher m=p.matcher("ffafd&#test1;afafdi&#test2;&#test3;1344343");
java.util.List list=new java.util.ArrayList();
while(m.find())
{
System.out.println(m.group(1));
list.add(m.group(1));
}
Object[] s=list.toArray();
for(int i=0;i<s.length;i++)
System.out.println(s[i]);
}
}
tgl10 2007-04-05
  • 打赏
  • 举报
回复
"&#[^;]*" 就是匹配&#和最近的;之间的内容
tgl10 2007-04-05
  • 打赏
  • 举报
回复
我上面的写错了!!!!!!!!!!!!!!!!!!!!!!!!
string[1024] ss; //合适大小
int i=0;

foreach(match in regex.matchs(str,"&#[^;]*")){
ss[i++]=match.value;
}
silverseven7 2007-04-05
  • 打赏
  • 举报
回复
to :tgl10(天狗螺) 谢谢!
如果是 String str = “ffafd&#test1;afafdi&#test2;&#test3;†ჷ....”
只提取test1,2,3的话上面的是不是也可以阿?

tgl10 2007-04-05
  • 打赏
  • 举报
回复
走错区了,这个是c#用的
tgl10 2007-04-05
  • 打赏
  • 举报
回复
string s=regex.replace(str,"&#[^;]*","$");
string[] ss=s.split('$')

81,092

社区成员

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

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