Python正则表达式-用标点符号快速替换多个关键字,并以
这是这个的延伸 我有一本python字典,是这样做的Python正则表达式-用标点符号快速替换多个关键字,并以,python,regex,string,replace,full-text-search,Python,Regex,String,Replace,Full Text Search,这是这个的延伸 我有一本python字典,是这样做的 a = {"animal": [ "dog", "cat", "dog and cat"], "XXX": ["I've been", "asp*", ":)"]} 我想找到一个解决方案,用它们的键尽可能快地替换字典值中的所有单词。解决方案对于大文本应该是可伸缩的。如果单词以星号结尾
a = {"animal": [ "dog", "cat", "dog and cat"], "XXX": ["I've been", "asp*", ":)"]}
我想找到一个解决方案,用它们的键尽可能快地替换字典值中的所有单词。解决方案对于大文本应该是可伸缩的。如果单词以星号结尾,则意味着文本中以该前缀开头的所有单词都应替换
所以下面这句话“我一直很坏,但我渴望成为一个更好的人,像我的狗和猫一样:)”应该转化为“XXX坏,但我XXX做一个更好的人,像我的动物XXX”
我正在尝试使用它,认为它应该是最快的选择。它是?但是我不能成功。
此外,我发现问题:
- 在处理包含标点符号的单词时(如“:”和“我曾经”)李>
- 当一些字符串像“狗”和“狗和猫”一样重复时
- 从
创建另一个字典,该字典将包含相同的键和根据值创建的正则表达式a
- 如果找到
字符,如果您指的是零个或多个单词字符,请将其替换为*
,如果您指的是零个或多个非空白字符,请使用\w*
(请调整\S*
方法),否则,请引用字符def quote(self,char)
- 使用明确的单词边界,
(?和
,或者如果它们干扰匹配的非单词条目,则将它们全部删除(?!\w)
- 这里的第一个正则表达式看起来像
(?()),第二个看起来像
(?)?