劫匪语言 - 翻译回来?

时间:2014-08-18 09:29:08

标签: python python-3.x

这里提到的蟒蛇强盗语言问题:

I made a Python 'robber's language' translating programme, is there another way?

很棒 - 而且我目前正在享受正则表达式解决方案 - 是否有类似的正则表达式解决方案将强盗语言放回原来的单词?

2 个答案:

答案 0 :(得分:2)

你仍然可以使用一个模式来进行正则表达式替换,其中辅音后跟o并且单独使用:

import re
print re.sub(r'([bcdfghjklmnpqrstvwxyz])o\1', r'\1', 'tothohisos isos fofunon')

输出

this is fun

答案 1 :(得分:0)

o附近重复辅音的任何内容都会被辅音本身取代:

re.sub(r'([bcdfghjklmnpqrstvwxyz])o\1', r'\1', inputtext)

[....]是一个字符组,匹配作为该集合一部分的一个字符。此字符在捕获组中捕获((...)括号)。接下来文字o必须匹配。 \1是一个反向引用,意味着与第一个捕获组完全相同的文本必须匹配。因此,它只匹配totzoz等字符序列。

然后我们重复使用相同的捕获组来定义替换;每个3个字符的匹配被第一个字符替换。

演示:

>>> import re
>>> inputtext = "tothohisos isos fofunon"
>>> re.sub(r'([bcdfghjklmnpqrstvwxyz])o\1', r'\1', inputtext)
'this is fun'