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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式怎么匹配字符串中最后一串数字?相关的知识,希望对你有一定的参考价值。

比如说一串字符串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代码,产生结果,匹配到字符串中最后一串数字,

参考技术A

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位的数字:^dn$

3、至少n位的数字:^dn,$

4、m-n位的数字:^dm,n$

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

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

7、带1-2位小数的正数或负数:^(-)?d+(.d1,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]*$

参考技术B   [0-9]+(?=[^0-9]*$)这样可以匹配字符串最后面的数字。

  字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充两点:1.Free Pascal中的Ansistring只能看成整体,很多函数无法使用,就算是提取单个元素也很麻烦,所以除非万不得已就不要用;2.字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
参考技术C [0-9]+(?=[^0-9]*$)
这样可以匹配字符串最后面的数字本回答被提问者和网友采纳
参考技术D 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());

Linux Shell正则表达式如何匹配1~3位数字

一开始我考虑用 grep '[0-9]\1,3\',判断结果为空来检查是否符合要求。
后来发现只要有一位数字就能通过检查,数字与字母、特殊字符等混合的情况没法筛除,如0a,#22, 4b;等。
求教高人,要求:只能是1~3位的数字,且012,002等不被接受(即不能以0开头)。先谢过!
判断的是一个变量,不是文件中的字符流。$符号表示文件结尾,应该不能用吧。
------------------------------------------
jlake老兄,多谢,可以了。看来$符号还是需要的。
var=123
test=`echo $var | grep '^[0-9]\1,3\$' | grep '^[1-9]'`
if [ "$test" -eq "" ]; then
echo "Invalid data!"
fi

参考技术A grep '^[0-9]\1,3\$' test.txt | grep '^[1-9]'

如果是变量

echo $var | grep '^[0-9]\1,3\$' | grep '^[1-9]'

$表示行尾

这个正则不匹配 12a 这样的字符串

你的变量内容是什么样的?

我用来测试的 test.txt 的内容:
123
321
123212
001
010
100
10000
0011
10101
1101
1
2
3
11
22
33
1a
2a本回答被提问者采纳
参考技术B lx@LxUbuntu:~/bash/tmp$ cat 123
123
321
123212
001
010
100
10000
0011
10101
1101
lx@LxUbuntu:~/bash/tmp$ sed -n '/^[1-9][0-9].$/p' 123
123
321
100

这样可以吗?

以上是关于正则表达式怎么匹配字符串中最后一串数字?的主要内容,如果未能解决你的问题,请参考以下文章

js 正则获取匹配部分最后一个内容

js中正则表达式实现验证首字符为大写英文字符,其后为大写英文或数字或中线,最后为汉字或乘号

正则表达式在匹配字符串之后查找最大数字的最后一次出现

把一串数字表示成千位分隔形式——JS正则表达式的应用

求一个正则表达式 匹配:7位数字 或者 7位数字,7位数字 或者 7位数字,7位数字,7位数字。。。

java 正则怎么匹配符号加中文