正则表达式:有没有办法解析正整数?

时间:2012-03-03 21:18:31

标签: regex

我在python中对此进行了编码,但语言并不重要:

  pattern = re.compile("^params:([0-9]+)$")
  f = open(in_file, 'r')
  try:
    while True:
      v = f.readline()
      if not v:
        break
      found = pattern.search(v)
      if found:
        pdb.gimp_message(str(found.group(1)))
        break
  finally:
    f.close()

问题在于regexp验证:

params:0
params:01654
params:000000000000

我不希望它们有效,所以我必须添加这个条件:if found.group(1)>0:我想:也许一个聪明的正则表达式可以避免这种情况。

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

如果我理解正确,唯一的条件是开始时不应该为零。

^params:([1-9][0-9]*)$

答案 1 :(得分:0)

你也可以使用字符串和整数转换的组合。 首先你转换成整数然后转换成字符串并比较2个字符串。