Python中的正则表达式 - 我想找到'yo mama'的变种并替换它

时间:2017-05-25 19:33:09

标签: python regex replace expression

相反,呃,奇怪的问题。我有一串“你妈妈”的笑话和其他类似的变种。我想用另一个字符串替换'yo mama','your mother','your mum'等的每个实例 - 让我们暂时称之为'Fred'。

我该怎么做呢?我开始时:

newComment = comment.replace('Your mama','Fred')

但我很快意识到这不会涵盖所有情况。有人可以提供一些正则表达式的帮助吗? :)

这些评论字符串是通过网络刮刀通过for循环制作的。到目前为止,我发现的变体如下 - 尽管是区分大小写:

yo mama
You mama
Your mama
Your mother
Your mum

奖金 - 我也想用'他'代替'她',用'他'代替'她'。

3 个答案:

答案 0 :(得分:4)

如果实例较少,您可以使用捕获组和替换来解决此类问题

正则表达式: (?:yo|your)\s*(?:mama|mother|mum)

  • (?:yo|your)第一个单词的可能实例,通过轮换分隔。

  • (?:mama|mother|mum)与第二个字相同。

<强> Regex101 Demo

答案 1 :(得分:0)

你可以去

[Yy]ou?r? (?:m[au]ma?|mother)

请参阅a demo on regex101.com

答案 2 :(得分:-1)

如果你有很多变化,你应该避免使用正则表达式。而是将所有Class not found: "SomeClass" Empty test suite. 的列表存储在instances中,并遍历列表,对列表中的所有元素执行list操作。

replace

更改性别 - BONUS

List= ['yo mama','your mama']
for rep in List:
    newComment=comment.replace(rep,'Fred')