如何编写以给定数字开头的正则表达式?

yak*_*yak 0 python regex

我想写一个程序来检查一个以给定数字开头的字符串.让我们说,我们有一个字符串:line = "5p.m. its a lovely time for tea!"然后我从用户读取一个数字:num = raw_input()并想检查我的行是否以用户通过的数字开头.

我想做点什么(这可能是一些错误):

s = compile(r"^[\<%\>]", num)
m = s.search(line)
Run Code Online (Sandbox Code Playgroud)

要么

s = compile(r"^[\<%\>]", num)
m = s.search(line)
Run Code Online (Sandbox Code Playgroud)

当用户传递5时,当行以5开头时,它会打印"OK"或类似的东西,或者当我的行以不同的数字开头时,它会打印"It not OK".我是这个整个正则表达式的新手,请帮助:)我接受C++和Python的代码;)

Vol*_*ity 5

正则表达式是矫枉过正:

line = '5p.m. its a lovely time for tea!'
num = raw_input()  # integer input
if line.startswith(num):
    print 'OK'
else:
    print 'It\'s not OK'
Run Code Online (Sandbox Code Playgroud)

如果需要使用regex,可以这样做:

if re.search('^%s' %num, line):  # checks if there is a match
    print 'OK'
else:
    print 'It\'s not OK'
Run Code Online (Sandbox Code Playgroud)

这个工作的原因是因为如果有匹配,re.search将返回一个_sre.SRE_Match objectTrue在布尔上下文中求值的.如果没有匹配,它将返回None将评估为False.