Python正则表达式-拆分字母数字字符,但删除并合并带连字符的单词

珠穆朗玛峰

我正在为一个项目解析超过200万个文本文件,需要您的正则表达式帮助以使其更快我需要拆分单词,以便能够使用以下命令:

text_file = re.sub(r'\W+',' ', text_file)

但是,对于带连字符的单词,我想删除连字符,但合并单词(即非营利组织将是非营利组织,而不是“ non”,“ profit”)。目前,我可以通过两次搜索和替换来完成此操作(根本不理想)。最终输出将是collections.Counter()对象将使用的单词列表。

def mod1(text_file):
     text_file = re.sub('\s*-\s*', '', text_file) # handling hyphens :( O(n)
     text_file = re.sub(r'\W+',' ', text_file)
     text_file = text_file.lower()
     return(text_file)

除了正则表达式之外,任何更快的处理技巧也将不胜感激。谢谢。

用户

使用之后lower(),您可以使用re.sub(r'([a-z])-([a-z])', r'\1\2', s)删除连字符。

然后re.split(r'[^a-z]'),拆分单词。

s = s.lower()
s = re.sub(r'([a-z])-([a-z])', r'\1\2', s)
s = re.split(r'[^a-z]', s)

根据使用的解决方案,此解决方案可能会(可能不会)更快它确实有一些可能的速度提升:

  • 忽略数字可使用[a-z]代替\w
  • lower()首先被调用,允许re.sub()搜索一半字母;这是[a-z]不是[A-Za-z]
  • 假设连字符前后没有空格(通常应该是这种情况),则可以用'\s*-\s*'更快的速度替换[a-z]-[a-z]

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python正则表达式:禁止带异常的字符

来自分类Dev

Python正则表达式从字符串中除去括号中的非字母数字字符

来自分类Dev

带有连字符的正则表达式单词

来自分类Dev

JavaScript正则表达式-数字之间的连字符

来自分类Dev

复杂的正则表达式-字母数字,连字符-空格-连字符,+和++

来自分类Dev

使用正则表达式匹配python中的字母数字字符列表

来自分类Dev

Python正则表达式在正则表达式之前拆分

来自分类Dev

正则表达式可同时匹配带连字符和不带连字符的单词

来自分类Dev

Python正则表达式删除非Unicode字符

来自分类Dev

带字母数字字符串的Grep正则表达式

来自分类Dev

Python正则表达式可删除字母数字字符,而无需删除字符串末尾的单词

来自分类Dev

不包含字母数字字符的单词的正则表达式

来自分类Dev

正则表达式匹配无法在python中选择带空格的字母数字字符串

来自分类Dev

Python正则表达式:禁止带异常的字符

来自分类Dev

Python正则表达式搜索字母数字字符和正斜杠

来自分类Dev

正则表达式-带连字符的字母

来自分类Dev

Python正则表达式-拆分字母数字字符,但删除并合并带连字符的单词

来自分类Dev

Python正则表达式拆分

来自分类Dev

接受字母字符或字母数字字符或带特殊符号的字母字符的正则表达式

来自分类Dev

Python正则表达式在正则表达式之前拆分

来自分类Dev

正则表达式可以匹配字母数字字符或连字符以外的任何内容

来自分类Dev

Python正则表达式删除非Unicode字符

来自分类Dev

通过正则表达式替换删除非字母数字字符

来自分类Dev

Python:单词和连字符的正则表达式

来自分类Dev

使用正则表达式 Python 从表达式中删除字符

来自分类Dev

Python正则表达式:删除非ASCII字符和以数字结尾的单词

来自分类Dev

使用 Python 替换正则表达式匹配中的非字母数字字符

来自分类Dev

用于数字/单词的正则表达式 Python

来自分类Dev

删除非字母数字字符的正则表达式不起作用

Related 相关文章

  1. 1

    Python正则表达式:禁止带异常的字符

  2. 2

    Python正则表达式从字符串中除去括号中的非字母数字字符

  3. 3

    带有连字符的正则表达式单词

  4. 4

    JavaScript正则表达式-数字之间的连字符

  5. 5

    复杂的正则表达式-字母数字,连字符-空格-连字符,+和++

  6. 6

    使用正则表达式匹配python中的字母数字字符列表

  7. 7

    Python正则表达式在正则表达式之前拆分

  8. 8

    正则表达式可同时匹配带连字符和不带连字符的单词

  9. 9

    Python正则表达式删除非Unicode字符

  10. 10

    带字母数字字符串的Grep正则表达式

  11. 11

    Python正则表达式可删除字母数字字符,而无需删除字符串末尾的单词

  12. 12

    不包含字母数字字符的单词的正则表达式

  13. 13

    正则表达式匹配无法在python中选择带空格的字母数字字符串

  14. 14

    Python正则表达式:禁止带异常的字符

  15. 15

    Python正则表达式搜索字母数字字符和正斜杠

  16. 16

    正则表达式-带连字符的字母

  17. 17

    Python正则表达式-拆分字母数字字符,但删除并合并带连字符的单词

  18. 18

    Python正则表达式拆分

  19. 19

    接受字母字符或字母数字字符或带特殊符号的字母字符的正则表达式

  20. 20

    Python正则表达式在正则表达式之前拆分

  21. 21

    正则表达式可以匹配字母数字字符或连字符以外的任何内容

  22. 22

    Python正则表达式删除非Unicode字符

  23. 23

    通过正则表达式替换删除非字母数字字符

  24. 24

    Python:单词和连字符的正则表达式

  25. 25

    使用正则表达式 Python 从表达式中删除字符

  26. 26

    Python正则表达式:删除非ASCII字符和以数字结尾的单词

  27. 27

    使用 Python 替换正则表达式匹配中的非字母数字字符

  28. 28

    用于数字/单词的正则表达式 Python

  29. 29

    删除非字母数字字符的正则表达式不起作用

热门标签

归档