Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python字母数字正则表达式_Python_Regex_Match - Fatal编程技术网

Python字母数字正则表达式

Python字母数字正则表达式,python,regex,match,Python,Regex,Match,下面我有以下正则表达式: alphanumeric = compile('^[\w\d ]+$') 我正在运行此正则表达式的当前数据: Tomkiewicz Zigomalas Andrade Mcwalters 我有一个单独的正则表达式来识别字母字符,但是上面的数据仍然符合字母数字标准 编辑:如何停止与上述正则表达式匹配的唯一alpha数据?说明:它可以有两种形式: 以数字字符开始,然后应该有一些字符,后面可能有任意数量的字母数字字符 以字母开始,然后是一些数字,后面是任意数量的字母数字

下面我有以下正则表达式:

alphanumeric = compile('^[\w\d ]+$')
我正在运行此正则表达式的当前数据:

Tomkiewicz Zigomalas Andrade Mcwalters 
我有一个单独的正则表达式来识别字母字符,但是上面的数据仍然符合字母数字标准


编辑:如何停止与上述正则表达式匹配的唯一alpha数据?

说明:它可以有两种形式:

  • 以数字字符开始,然后应该有一些字符,后面可能有任意数量的字母数字字符
  • 以字母开始,然后是一些数字,后面是任意数量的字母数字字符 演示:

    >>> an_re = r"(\d+[A-Z])|([A-Z]+\d)[\dA-Z]*"
    >>> re.search(an_re, '12345', re.I) # not acceptable string
    >>> re.search(an_re, 'abcd', re.I) # not acceptable string 
    >>> re.search(an_re, 'abc1', re.I) # acceptable string 
    <_sre.SRE_Match object at 0x14153e8>
    >>> re.search(an_re, '1abc', re.I)
    <_sre.SRE_Match object at 0x14153e8>
    
    >>an_re=r“(\d+[A-Z])|”([A-Z]+\d)[\dA-Z]*”
    >>>re.search(an_re,'12345',re.I)#不可接受的字符串
    >>>re.search(an_re,'abcd',re.I)#不可接受的字符串
    >>>检索(一个可接受的字符串,'abc1',re.I)#
    >>>重新搜索(关于'1abc',关于I)
    
    说明:它可以有两种形式:

  • 以数字字符开始,然后应该有一些字符,后面可能有任意数量的字母数字字符
  • 以字母开始,然后是一些数字,后面是任意数量的字母数字字符 演示:

    >>> an_re = r"(\d+[A-Z])|([A-Z]+\d)[\dA-Z]*"
    >>> re.search(an_re, '12345', re.I) # not acceptable string
    >>> re.search(an_re, 'abcd', re.I) # not acceptable string 
    >>> re.search(an_re, 'abc1', re.I) # acceptable string 
    <_sre.SRE_Match object at 0x14153e8>
    >>> re.search(an_re, '1abc', re.I)
    <_sre.SRE_Match object at 0x14153e8>
    
    >>an_re=r“(\d+[A-Z])|”([A-Z]+\d)[\dA-Z]*”
    >>>re.search(an_re,'12345',re.I)#不可接受的字符串
    >>>re.search(an_re,'abcd',re.I)#不可接受的字符串
    >>>检索(一个可接受的字符串,'abc1',re.I)#
    >>>重新搜索(关于'1abc',关于I)
    
    使用前瞻来断言至少存在一个字母和至少一个数字的条件:

    (?=.*[a-zA-Z])(?=.*[0-9])^[\w\d ]+$
    
    上面的正则表达式使用两个lookahead首先检查每个条件的整个字符串。查找开始搜索,直到找到指定范围内的单个字符。如果断言匹配,那么它将转到下一个断言。最后一部分我借用了OP最初的尝试,只是确保整个字符串由一个或多个低/高字母、下划线、数字或空格组成。

    使用前瞻来断言至少存在一个字母和至少一个数字的条件:

    (?=.*[a-zA-Z])(?=.*[0-9])^[\w\d ]+$
    

    上面的正则表达式使用两个lookahead首先检查每个条件的整个字符串。查找开始搜索,直到找到指定范围内的单个字符。如果断言匹配,那么它将转到下一个断言。最后一部分借用了OP最初的尝试,只是确保整个字符串由一个或多个上下字母、下划线、数字或空格组成。

    括号中的字符类与任何表达式匹配
    [\w\d]
    表示“数字或字母”。如果只需要字母,请删除
    \d
    。我需要字母和数字。我希望它只与字母数字数据匹配,但它与仅为字母字符的数据匹配。@g.d.d.c
    \w
    也包括数字:-)所以“字母数字数据”必须至少包含一个数字和一个字母?例如,“1a”是字母数字,但“1”不是,而“a”不是?@Kevin是的,没错。括号中的字符类与任何表达式都匹配
    [\w\d]
    表示“数字或字母”。如果只需要字母,请删除
    \d
    。我需要字母和数字。我希望它只与字母数字数据匹配,但它与仅为字母字符的数据匹配。@g.d.d.c
    \w
    也包括数字:-)所以“字母数字数据”必须至少包含一个数字和一个字母?例如,“1a”是字母数字,但“1”不是,而“a”不是?@Kevin是的,这是正确的。@Glitchezz它可以工作,与
    I
    ,但理解我的RE?请记住,我没有使用
    \w
    ,因为它包括
    \u
    ,我留下了
    ^
    $
    作为exercise@Glitchezz它将与
    I
    一起工作,但理解我的RE?记住我没有使用
    \w
    ,因为它包括
    \u
    ,我把
    ^
    $
    作为练习留给了你。我试图理解你的RE,但不能,你能给我解释一下吗?(虽然我已将此书签为明天的课程)+1作为高级示例。谢谢,特努布,我试着理解你的意思,但是不能,你能给我解释一下吗?(虽然我已将此书签为明天的课程)+1作为高级示例。谢谢