嗯,奇怪的问题。我有一串“你妈妈”的笑话和其他类似的变种。我想用另一个字符串替换“ yo mama”,“您的母亲”,“您的妈妈”等的每个实例-现在让我们将其称为“ Fred”。

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

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


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

这些注释字符串是通过网络刮板通过for循环生成的。到目前为止,我发现的变体如下-尽管区分大小写:

yo mama
You mama
Your mama
Your mother
Your mum


奖励-我也想用“他”代替“她”,用“他”代替“她”。

最佳答案

如果实例较少并且您都知道它们,则可以使用捕获组和交替来解决此类问题。

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


(?:yo|your)第一个单词的可能实例由交替分隔。
(?:mama|mother|mum)与第二个单词相同。


Regex101 Demo

07-28 07:52