【发布时间】:2017-02-17 16:33:21
【问题描述】:
import re
st=input() #The input string
ss=input() #The substring to be searched
lss=len(ss)
lst=len(st)
x=lst-lss
for i in range(x):
r=re.search(r'(%s)'%ss,st,i)
if r:
print(r.start(),r.end())
上面的代码是对任务的响应。任务是:
给出一个字符串 S。
我需要在 S 中找到字符串 k 的开始和结束的索引。
如果输入是:
aaadaa
aa
输出应该是:
(0, 1)
(1, 2)
(4, 5)
我知道我写的代码是错误的,因为我没有得到想要的输出。我在 for 循环之后再次遍历了一行。我无法说服自己这是错误的。我只想知道为什么 for 循环之后的代码不起作用? 有人可以帮我解决吗?
【问题讨论】:
-
我认为你不应该像那样将
i传递给search。搜索的第三个参数是flags,而不是“开始搜索的索引”,如果这是你想要做的。 -
你甚至不需要正则表达式(这是一种矫枉过正)。使用标准
string.find()。
标签: python regex python-3.4