有没有办法用函数" find"?实现通配符方法?

时间:2017-02-01 00:54:07

标签: python string design-patterns find wildcard

我对Python很陌生。我知道find函数接受一个字符串p和一个子字符串s并返回s在p中显示的索引。但如果我有像

这样的东西
p = 'abc'
text = 'aaaabbaac'
text.find(p)

是否可以编写一个方法,允许我将通配符设置为b并仍然返回a和c匹配的索引,而不是返回-1?

我在一个有两种方法的类中使用它,find方法和" setwildcard"采取一个角色并做我上面描述的方法。默认情况下,通配符设置为“无”。

1 个答案:

答案 0 :(得分:0)

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

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

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

     

re.search()扫描字符串,查找常规的第一个位置   表达式模式产生匹配,并返回相应的   MatchObject实例。

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

查看re

希望这有帮助。