正则表达式怎么匹配字符串中最后一串数字?
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代码,产生结果,匹配到字符串中最后一串数字,
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
如果是变量
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中正则表达式实现验证首字符为大写英文字符,其后为大写英文或数字或中线,最后为汉字或乘号