2017-02-01 125 views
1

我对Python很陌生。我知道find函数接受一个字符串p和一个子字符串s,并返回s在p中出现的索引。但是,如果我有这样的事情有没有办法用函数“find”实现通配符方法?

p = 'abc' 
text = 'aaaabbaac' 
text.find(p) 

是否可以写一个方法,让我来设置通配符B和仍返回,而不是返回-1处A和C匹配指数?

我在一个有两种方法的类中使用这个方法,find方法和一个“setwildcard”方法,它需要一个字符并做上面描述的。默认情况下,通配符设置为None。

+4

否使用正则表达式和're.findall()'。 – DyZ

+0

我不知道如何。您能否解释一下 – User

+0

问如何“使用正则表达式”太宽泛。看看这些文档,并亲自尝试一下。该模块在Python中被称为're',并且是标准库的一部分。 –

回答

0

您可以将compile正则表达式模式转换为正则表达式对象,可以使用它的match()search()方法进行匹配。

import re 
reObj2 = re.compile(pattern) 
reObj2.search(s) 

re.match()将只匹配在字符串的开头,而不是在每个 行的开头。

re.search()扫描通过串寻找其中定期 表达模式产生一个匹配,并返回对应的 MatchObject实例的第一个位置。

此外,如果你想返回所有非重叠模式的匹配字符串,你可以使用re.findall()

看看re

希望这会有所帮助。

相关问题