正则表达式怎么匹配字符串中最后一串数字?

比如说一串字符串1a2b3c4d56789abcde
怎么匹配出56789?

1、创建java类,TestRegexp

2、编写java代码,

String regex = "[0-9]+(?=[^0-9]*$)";

Pattern p = Pattern.compile(regex);

java.util.regex.Matcher m = p.matcher("1a2b3c4d56789abcde");

3、选择Run AS -- Java application,

4、执行java代码,产生结果,匹配到字符串中最后一串数字,

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-31

importre

temp='DwellTime:666'

m=re.search(r'\d*',temp)

printrepr(m.group()),m.start(),m.end()

m=re.search(r'\d+',temp)

printrepr(m.group()),m.start(),m.end()

printre.findall(r'\d*',temp)

输出:

''00

'666'1114

['','','','','','','','','','','','666','']

扩展资料

正则表达式,校验数字的表达式:

1、数字:^[0-9]*$

2、n位的数字:^d{n}$

3、至少n位的数字:^d{n,}$

4、m-n位的数字:^d{m,n}$

5、零和非零开头的数字:^(0|[1-9][0-9]*)$

6、有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$

7、带1-2位小数的正数或负数:^(-)?d+(.d{1,2})?$

8、正数、负数、和小数:^(-|+)?d+(.d+)?$

9、有两位小数的正实数:^[0-9]+(.[0-9]{2})?$

10、非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$

11、非零的正整数:^[1-9]d*$或^([1-9][0-9]*){1,3}$或^+?[1-9][0-9]*$

本回答被网友采纳
第2个回答  推荐于2016-01-25
  [0-9]+(?=[^0-9]*$)这样可以匹配字符串最后面的数字。

  字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充两点:1.Free Pascal中的Ansistring只能看成整体,很多函数无法使用,就算是提取单个元素也很麻烦,所以除非万不得已就不要用;2.字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
第3个回答  推荐于2018-03-01
[0-9]+(?=[^0-9]*$)
这样可以匹配字符串最后面的数字本回答被提问者和网友采纳
第4个回答  2017-01-29
String regex = "^A*C*B$"; Pattern p = Pattern.compile(regex); java.util.regex.Matcher m = p.matcher("这里是你要匹配的字符串"); while (m.find()) { System.out.println(m.group()); }
相似回答