我想写一个程序来检查一个以给定数字开头的字符串.让我们说,我们有一个字符串: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的代码;)
正则表达式是矫枉过正:
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 object将True在布尔上下文中求值的.如果没有匹配,它将返回None将评估为False.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |