java怎么从字符串中,提取第一组数字?
比如有下列的情况表15dfsdaf33表abcd15def表15哈哈abc22表*#A$!@&@!15$#@432$+_我要提取“表”字后面的,第一组数组,“表”和第一组...
比如有下列的情况
表15dfsdaf33
表abcd15def
表 15 哈哈abc22
表*#A$!@&@!15$#@432$+_
我要提取“表”字后面的,第一组数组,“表”和第一组数字间会出现各种字符,各种字符后还会出现数字,但我只有“表”后面的第一组数字,用java怎么获得?最好是正则。。
谢谢老师,在线等。。。 展开
表15dfsdaf33
表abcd15def
表 15 哈哈abc22
表*#A$!@&@!15$#@432$+_
我要提取“表”字后面的,第一组数组,“表”和第一组数字间会出现各种字符,各种字符后还会出现数字,但我只有“表”后面的第一组数字,用java怎么获得?最好是正则。。
谢谢老师,在线等。。。 展开
4个回答
展开全部
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));
}
}
}
下面是取出表后第一组数字的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));
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
下面是取出表后第一组数字的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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
// 要求的字符串
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());
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());
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不明白题主意思,我就写了一个看看对题主有没有用
----------------------------------------------------------------------------------------
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);
----------------------------------------------------------------------------------------
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询