java怎么从字符串中,提取第一组数字?

比如有下列的情况表15dfsdaf33表abcd15def表15哈哈abc22表*#A$!@&@!15$#@432$+_我要提取“表”字后面的,第一组数组,“表”和第一组... 比如有下列的情况
表15dfsdaf33
表abcd15def
表 15 哈哈abc22
表*#A$!@&@!15$#@432$+_
我要提取“表”字后面的,第一组数组,“表”和第一组数字间会出现各种字符,各种字符后还会出现数字,但我只有“表”后面的第一组数字,用java怎么获得?最好是正则。。
谢谢老师,在线等。。。
展开
 我来答
随性亻
2015-07-09 · TA获得超过4180个赞
知道小有建树答主
回答量:4622
采纳率:84%
帮助的人:634万
展开全部
Java语言正则表达式:(表)[^\\d\r\n]*?(\\d+)[^\r\n]*?
下面是取出表后第一组数字的Java程序:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TT {
public static void main(String[] args) {
String s="表15dfsdaf33\r\n表abcd15def\r\n表 15 哈哈abc22\r\n表*#A$!@&@!15$#@432$+_";
String regex="(表)[^\\d\r\n]*?(\\d+)[^\r\n]*?";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
while(m.find()){
System.out.println(m.group(1)+m.group(2));
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫薇参星
科技发烧友

2013-11-14 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3586万
展开全部
Java语言正则表达式:(表)[^\\d\r\n]*?(\\d+)[^\r\n]*?
下面是取出表后第一组数字的Java程序:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TT {
public static void main(String[] args) {
String s="表15dfsdaf33\r\n表abcd15def\r\n表 15 哈哈abc22\r\n表*#A$!@&@!15$#@432$+_";
String regex="(表)[^\\d\r\n]*?(\\d+)[^\r\n]*?";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
while(m.find()){
System.out.println(m.group(1)+m.group(2));
}
}
}
运行结果:
表15
表15
表15
表15
追问
差不多,谢谢,其实我是要数字15,不要表字,
还有这种情况:abc表¥@des15def表288¥:
追答
Java语言正则表达式:[^表\r\n]*?表[^\\d\r\n]*?(\\d+)[^\r\n]*
Java语言取出表字后第一组数字程序:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TT {
public static void main(String[] args) {
String s="表15dfsdaf33\r\n表abcd15def\r\n表 15 哈哈abc22\r\n表*#A$!@&@!15$#@432$+_\r\nabc表¥@des15def表288¥:";
String regex="[^表\r\n]*?表[^\\d\r\n]*?(\\d+)[^\r\n]*";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
while(m.find()){
System.out.println(m.group(1));
}
}
}
运行结果:
15
15
15
15
15
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
windySo_What
2013-11-14
知道答主
回答量:7
采纳率:0%
帮助的人:9960
展开全部
// 要求的字符串
String str = "¥@¥fs45..<>fsd889345sd";
// 转换成字符数组
char[] strs = str.toCharArray();
StringBuffer sb = new StringBuffer();
for(Character c : strs){
// 正则表达式(\d表示数字)
if(c.toString().matches("^\\d$")){
sb.append(c);
}
}
System.out.println(sb.toString());
// 转换成数字
int num = Integer.parseInt(sb.toString());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爷丶霸气张扬
2013-11-14 · TA获得超过298个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:138万
展开全部
不明白题主意思,我就写了一个看看对题主有没有用

----------------------------------------------------------------------------------------
String name="214^&3FS";
int a=name.indexOf("2");
int b=name.lastIndexOf("4");
String N=name.substring(a, b+1);
System.out.println(N);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式