如何在python中使用正则表达式替换字符串的多个单词?

我有一本字典,例如:

dic = { "xl": "xlarg", "l": "larg",'m':'medium'}

并且我想使用re.sub或类似的方法找到dic.keys中的任何字符串(包括单个字母)并将其替换为键的值。

def multiple_replace(dict, text):
     # Create a regular expression  from the dictionary keys
     regex = re.compile("(%s)" % "|".join(map(re.escape, dict.keys())))
    
     # For each match, look-up corresponding value in dictionary
     return regex.sub(lambda mo: dict[mo.string[mo.start():mo.end()]], text)

它适用于字符串中的单个字母,例如,将大小m更改为中等大小,但也更改单词中的字母,例如将星期一更改为mediumonday

谢谢

片状

您可以使用re.compilesub方法找到匹配的子字符串并替换它们。这里的想法是通过使用OR语句将所有键连接到单个模式中|然后,对于每个匹配项,您都可以使用匹配的子字符串对替换字典进行查找。

与此同时,您可以使用先行查找和先行正则表达式。对于后面的情况,您希望它不是一个词(?<!\w)对于前瞻,您也希望它不是单词(?!\w)

总而言之,我们有: r"(?<!\w)(xl|l|m)(?!\w)"

这是一个例子:

def replace_substrings(s, d):
    p = "|".join(d.keys())
    p = r"(?<!\w)(" + p + r")(?!\w)"
    return re.compile(p).sub(lambda m: d[m.group(0)], s)
...


dic = {"xl": "xlarg", "l": "larg",'m':'medium'}
inputs = [
    "size m",
    "monday",
    "xl sell",
    "m size m l xl",
]

for input in inputs:
    print(replace_substrings(input, dic))

这将输出:

size medium
monday
xlarg sell
medium size medium larg xlarg

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在python中使用正则表达式排除特定的字符串?

来自分类Dev

python中的正则表达式:如何在模式中使用可变字符串?

来自分类Dev

如何在python中使用正则表达式以“,”分隔字符串

来自分类Dev

如何在python中使用正则表达式删除字符串的右侧元素?

来自分类Dev

如何使用正则表达式匹配字符串中的多个单词?

来自分类Dev

如何在python中使用正则表达式从字符串中检索子字符串

来自分类Dev

如何在Python中使用正则表达式从预定义的子字符串列表中替换或更新DataFrame的字符串实例

来自分类Dev

如何在Python中用正则表达式匹配和替换多个字符串

来自分类Dev

如何在Java中使用正则表达式非捕获组进行字符串替换

来自分类Dev

在Python中使用正则表达式替换模式的字符串

来自分类Dev

如何在python中使用正则表达式在字符串列表中查找单词

来自分类Dev

如何在python中使用正则表达式从字符串中提取一些单词模式

来自分类Dev

Python-使用正则表达式用标题中的相同单词替换字符串中的单词

来自分类Dev

如何使用正则表达式替换python词典中的字符串

来自分类Dev

如何在Java中使用正则表达式允许空字符串?

来自分类Dev

如何在pyspark中使用正则表达式从字符串中删除星号*

来自分类Dev

如何在Perl中使用正则表达式grep字符串?

来自分类Dev

如何在Java中使用正则表达式拆分字符串

来自分类Dev

如何在javascript中使用正则表达式来单独搜索字符串?

来自分类Dev

如何在javascript中使用正则表达式选择特定的字符串值?

来自分类Dev

如何在VScode中使用正则表达式的字符串前插入$?

来自分类Dev

如何在Ajv中使用正则表达式验证字符串?

来自分类Dev

如何在文档中使用正则表达式对字符串进行完全匹配

来自分类Dev

如何在emacs中使用正则表达式匹配此字符串?

来自分类Dev

如何在php中使用正则表达式字符串

来自分类Dev

如何在grep中使用正则表达式查找字符串

来自分类Dev

如何在javascript中使用正则表达式来单独搜索字符串?

来自分类Dev

如何在Java中字符串的某些部分中使用正则表达式?

来自分类Dev

如何在JavaScript中使用正则表达式查找字符串?

Related 相关文章

  1. 1

    如何在python中使用正则表达式排除特定的字符串?

  2. 2

    python中的正则表达式:如何在模式中使用可变字符串?

  3. 3

    如何在python中使用正则表达式以“,”分隔字符串

  4. 4

    如何在python中使用正则表达式删除字符串的右侧元素?

  5. 5

    如何使用正则表达式匹配字符串中的多个单词?

  6. 6

    如何在python中使用正则表达式从字符串中检索子字符串

  7. 7

    如何在Python中使用正则表达式从预定义的子字符串列表中替换或更新DataFrame的字符串实例

  8. 8

    如何在Python中用正则表达式匹配和替换多个字符串

  9. 9

    如何在Java中使用正则表达式非捕获组进行字符串替换

  10. 10

    在Python中使用正则表达式替换模式的字符串

  11. 11

    如何在python中使用正则表达式在字符串列表中查找单词

  12. 12

    如何在python中使用正则表达式从字符串中提取一些单词模式

  13. 13

    Python-使用正则表达式用标题中的相同单词替换字符串中的单词

  14. 14

    如何使用正则表达式替换python词典中的字符串

  15. 15

    如何在Java中使用正则表达式允许空字符串?

  16. 16

    如何在pyspark中使用正则表达式从字符串中删除星号*

  17. 17

    如何在Perl中使用正则表达式grep字符串?

  18. 18

    如何在Java中使用正则表达式拆分字符串

  19. 19

    如何在javascript中使用正则表达式来单独搜索字符串?

  20. 20

    如何在javascript中使用正则表达式选择特定的字符串值?

  21. 21

    如何在VScode中使用正则表达式的字符串前插入$?

  22. 22

    如何在Ajv中使用正则表达式验证字符串?

  23. 23

    如何在文档中使用正则表达式对字符串进行完全匹配

  24. 24

    如何在emacs中使用正则表达式匹配此字符串?

  25. 25

    如何在php中使用正则表达式字符串

  26. 26

    如何在grep中使用正则表达式查找字符串

  27. 27

    如何在javascript中使用正则表达式来单独搜索字符串?

  28. 28

    如何在Java中字符串的某些部分中使用正则表达式?

  29. 29

    如何在JavaScript中使用正则表达式查找字符串?

热门标签

归档