我正试图使用自定义词典将德语单词转换为英语。在下面的代码中,只有当匹配单词的后缀或前缀福尔斯字符时,才应该进行替换
[,\/!?()_1234567890-=+."""' "]
字符串
举例来说:Mein
应该首先转换,但不是在MeinName
中转换,因为前缀和后缀不是上面提到的字符。如果有像_Mein
或Mein.
这样的单个单词,则需要转换它们。
import re
string = "Mein ,Name, ist John, Wo23 bist+ ,_du? , MeinName "
replacements = {
'Mein': 'my',
'ist': 'is',
'Wo': 'where',
'bist': 'are',
'du': 'you',
'is': 'iis'
}
re.sub(
'({})'.format('|'.join(map(re.escape, replacements.keys()))),
lambda m: replacements[m.group()],
string
)
型
预期的输出:
my ,name,is John,where23 are+,_you? ,MeinName
型
1条答案
按热度按时间new9mtju1#
您可以使用
字符串
参见Python demo。
正则表达式看起来像
型
参见regex demo。详细信息:
(?:Mein|ist|Wo|bist|du|is)
-备选字符串之一(?=[,/!?()_0-9\-=+."\s\'])
-一个肯定的前瞻,匹配一个位置,紧跟着,
、/
、!
、?
、)
、(
、_
、一个数字、-
、=
、+
、.
、"
、空白和'
。