字符串Python结尾的数字的正则表达式

时间:2017-05-01 15:04:10

标签: python regex string

我想为所有在字符串末尾有数字的字符串获取布尔值。例如

import re
# list of strings
li = ['/Usein-kysytyt-kysymykset;jsessionid=0727CD5A45A05D3CBD5A26D459C34D9D.xxlapp11',
      '/vaatteet/naisten-vaatteet/naisten-takit/c/120204',
      '/pyoraily/pyorailyvarusteet/pyorankuljetuslaukut-ja-vannepussit/c/100818_8']
for i in li:
    if(bool(re.match('\d+$', i))):
        print(i)

所以这应该有效,并为Trueli[1]以及li[2] False返回li[0]但是对于列表中的所有元素都返回false 。这有什么不对?

3 个答案:

答案 0 :(得分:1)

您可以使用re.findall()

for i in li:
    if(bool(re.findall('\d+$', i))):
        print(i)

答案 1 :(得分:1)

试试这个:

for i in li:
#get last occurrence of that string
    l = i[len(i) - 1]
    #if it is a number then do following
    if l.isdigit():
        print(i)

答案 2 :(得分:1)

关于re.match的python文档:

  

如果字符串开头的零个或多个字符与正则表达式模式匹配,则返回相应的MatchObject实例。

要确定字符串的最后一个元素是否为数字,请改为使用:

for i in li:
    if(bool(re.search(r'\d+$', i))):
        print(i)