当前位置: 首页 > 知识库问答 >
问题:

使用python中的正则表达式查找540-600之间的数字[重复]

宋智明
2023-03-14

我只是一个python的初学者,我正在使用regex查找540-600之间的数字

并编写了以下脚本,但这不起作用:

import re
import sys

def valid_num(num):
    print num
    p = re.match (r'^[5-6]\d\d', str(num))
    return bool(p) and all(map(lambda n: 540<= int(n)<=600, p.groups()))

a = 699
print valid_num(a)

共有1个答案

司马宏邈
2023-03-14

您可以通过以下部分编写一个只匹配540到600之间的数字的regex:

5[4-9]\d|600

因此,regex包含两种可能:5[4-9]\d6005[4-9]\d匹配540到599之间的任意数字,因为它以5开头,后面是4到9之间的数字和0到9之间的数字。600匹配600数字。

此外,您可能希望使用单词边界\b以确保与56900不匹配。所以:

\b(?:5[4-9]\d|600)\b
^(?:5[4-9]\d|600)$
import re

rgx540600 = re.compile(r'^(?:5[4-9]\d|600)$')

def valid_num(num):
    return bool(rgx540600.match(str(num)))
 类似资料:
  • 问题内容: 我想用以下代码查找字符串中的所有数字: 我还尝试将定界符添加到正则表达式,使用正数作为的第二个参数,使用仅数字字符串,例如“ 123”作为第一个参数… 但是输出总是 我似乎想念一下正则表达式在Go中的工作原理,但是无法绕开它。这不是有效的表达方式吗? 问题答案: 问题出在你的第二个整数参数上。引用以下软件包的文档: 这些例程使用一个额外的整数参数n;如果n> = 0,则该函数最多返回n

  • 问题内容: 谁能给我一个Java正则表达式来识别字符串中的重复字符?我只是在寻找立即重复的字符,它们可以是字母或数字。 例: abccde <-寻找此内容(立即重复c的内容) abcdce <-不是这个(c用另一个字符分隔) 问题答案: 尝试 在任何单词字符(字母,数字或下划线)和匹配无论是在第一组括号,一次或多次的比赛。因此,您可以匹配出现的任何一个单词字符,然后立即再次匹配一个或多个相同的单词

  • 我正在尝试编写一个正则表达式,使其只有两个单词,它们之间只有一个空格。两个字都不能少于三个字符。例子:乔·史密斯

  • 我用Python编写了这个正则表达式并在regex101上进行了测试,但它仍然没有按照我想要的方式工作: 我试图找到的是一种模式,其中字符串可以选择以这些符号之一开头或结尾,中间只有数字: 该列表包括破折号、正斜杠、反斜杠、括号、符号、空格和句号。如果字符串只包含中间的数字,并且在字符串的开头和/或结尾有可选标点,则搜索应返回true。 此正则表达式似乎适用于大多数情况,但如果我在中间的数字中添加

  • 问题内容: 由于表示两个字符,因此应使用和‘。但是,为什么和 与正则表达式不匹配? 问题答案: 默认情况下不会产生重叠匹配。但是,此表达式可以: 这是一个前瞻性断言: 如果…下一个匹配,则匹配,但不使用任何字符串。这称为先行断言。例如, 仅在后跟时匹配。

  • 所以我使用一个供应商应用程序,它使用regex从我的站点中删除代码。我有一个完整的div,我想使用regex控件找到并删除它,但是当我尝试时,换行和div挡住了我的路。有人有想法吗?我正在努力。?但是就像我说的,用断线来思考,它会阻止它收集所有的东西。