Python正则表达式问题

2024-05-23 23:07:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我在将RegEx表达式转换为python时遇到问题。我知道'(\\d+)'是单个整数的表达式,但是我不知道如何得到一个整数,即[2-9]。在

正则表达式如下:

[2-9][p-z][a-h][2-9][a-z]*[p-z][2-9][p-z][2-9][p-z]

这是我当前的表达式,但它会产生许多误报,因为它不够具体:

          re1='(\\d+)'    # Integer Number 1
            re2='([a-z])'   # Any Single Word Character (Not Whitespace) 1
            re3='([a-z])'   # Any Single Word Character (Not Whitespace) 2
            re4='(\\d+)'    # Integer Number 2
            re5='((?:[a-z][a-z]+))' # Word 1
            re6='(\\d+)'    # Integer Number 3
            re7='([a-z])'   # Any Single Word Character (Not Whitespace) 3
            re8='(.)'   # Any Single Character 1
            re9='([a-z])'   # Any Single Word Character (Not Whitespace) 4
^{pr2}$

Tags: number表达式notany整数integerregexword
2条回答

您应该能够在Python中使用范围2-9,例如:re1 = re.compile(r'[2-9]')。然后在我的控制台中的一个测试显示,re1.match('7')根据需要返回MatchObject,而{}返回{},这也是您想要的。在

您似乎还使用了re2中的[a-z]范围,您说您希望在其他字符范围中使用[p-z]-类似的问题。在

根据我在你的问题中看到的情况,我提议制定以下准则:

import re

pat = ('([2-9])'        # Integer Number 1
       '([p-z])'        # Any Single Word Character (Not Whitespace) 1
       '([a-h])'        # Any Single Word Character (Not Whitespace) 2
       '([2-9])'        # Integer Number 2
       '([a-z]*[p-z]+)' # Word 1
       '([2-9])'        # Integer Number 3
       '([p-z])'        # Any Single Word Character (Not Whitespace) 3
       '(.)'            # Any Single Character 1
       '([p-z])'        # Any Single Word Character (Not Whitespace) 4
       )
rg = re.compile(pat)

txt = 'jiji4pa6fmlgkfmoaz8p#q,,,,,,,,,,'
m = rg.search(txt)
if m:
    text2 = "%s%s%s%s%s%s%s%s%s" % m.groups()
    print text2

# prints 4pa6fmlgkfmoaz8p#q

编辑

^{pr2}$

相关问题 更多 >