python:re.findall的非正则表达式

时间:2012-06-16 22:21:55

标签: python regex match findall

我想知道python中是否存在以下任何内容:

  • 答:非正则表达式相当于“re.findall()”。
  • B:在传递给findall()之前中和变量中的正则表达式特殊字符的方法。

我将一个变量传递给re.findall,当变量有句号或斜线或克拉等时会遇到问题因为我希望这些字符按字面解释。我意识到没有必要使用正则表达式来完成这项工作,但我喜欢re.findall()的行为,因为它返回它找到的每个匹配项的列表。这允许我通过使用len()来轻松计算子字符串存在的次数。

以下是我的代码示例:

>>substring_matches = re.findall(randomVariableOfCharacters, document_to_be_searched)
>>
>>#^^ will return something like ['you', 'you', 'you']
>>#but could also return something like ['end.', 'end.', 'ends']
>>#if my variable is 'end.' because "." is a wildcard.
>>#I would rather it return ['end.', 'end.']
>>
>>occurrences_of_substring = len(substring_matches)

如果可能的话,我希望不必使用string.find()。非常感谢任何帮助和/或建议!

2 个答案:

答案 0 :(得分:4)

如果您只想要出现次数,则可以使用str.count(),但不等于re.findall()只能获得次数。

document_to_be_searched = "blabla bla bla."
numOfOcur = document_to_be_searched.count("bl")

答案 1 :(得分:3)

当然:看看你的代码,我认为你正在寻找的是string.count

>>> 'abcdabc'.count('abc')
2

但请注意,等同于re.findall;虽然它看起来更合适。