2012-10-16 112 views
0

我需要检查一个字符串是否匹配ORA-16252: unable to extend segment by <any value> in tablespace。这里<any value>可以是任何数字。我如何匹配python中的字符串?有没有一个正则表达式?Python匹配字符串中的数字

+1

什么样的号码?整数,浮点数?十六进制?科学计数法? – wim

+0

@wim它的整数 –

回答

3
regex = re.compile(r'ORA-16252: unable to extend segment by \d+ in tablespace') 
if regex.match(s): 
    ... 
+0

如果我想匹配整数和浮点数? –

+0

为什么'r'放在ORA-16252的前面? –

+0

@Sandeep Krishnan:r表示它是一个原始字符串文字。在原始字符串中,反斜杠总是意味着反斜杠。例如,'\ n'是一个返回字符,但r'\ n'是反斜杠,后跟字母'n'。由于反斜杠在正则表达式中很常见,因此在编写正则表达式时始终使用原始字符串文字是标准做法。 (在你的问题的回答中,实际上并不需要r。) – user763305

0

\\d+用于匹配一个或多个数字是连续性的。所以,你可以添加它来代替你的<any value>以匹配任何数字。

其余的字符串,因为它不会像你所说的那样变化,保持原样。

m = re.search(r'ORA-16252: unable to extend segment by \d+ in tablespace', 
       yourString) 

if m is not None: 
    # set your value