正则表达式:用一个或两个字母删除字符串之间的空格

胡安·佩雷斯(Juan Perez)

考虑下表的第一列中显示的以下原始字符串:

Original String                  Parsed String                   Desired String
'W. & J. JOHNSON LMT.COM'       #W    J  JOHNSON LIMITED        #WJ JOHNSON LIMITED
'NORTH ROOF & WORKS CO. LTD.'   #NORTH ROOF   WORKS CO  LTD     #NORTH ROOF WORKS CO LTD
'DAVID DOE & CO., LIMITED'      #DAVID DOE   CO   LIMITED       #DAVID DOE CO LIMITED
'GEORGE TV & APPLIANCE LTD.'    #GEORGE TV   APPLIANCE LTD      #GEORGE TV APPLIANCE LTD 
'LOVE BROS. & OTHERS LTD.'      #LOVE BROS    OTHERS LTD        #LOVE BROS OTHERS LTD
'A. B. & MICHAEL CLEAN CO. LTD.'#A  B    MICHAEL CLEAN CO  LTD  #AB MICHAEL CLEAN CO LTD
'C.M. & B.B. CLEANER INC.'      #C M    B B  CLEANER INC        #CMBB CLEANER INC

我需要按以下步骤删除标点符号:

def transform(word):
    word = re.sub(r'(?<=[A-Za-z])\'(?=[A-Za-z])[A-Z]|[^\w\s]|(.com|COM)',' ',word)

但是,我没有最后一点。删除标点符号后,我得到了很多空格。我如何有一个将首字母放在一起并保留单个空格的正则表达式(没有首字母)的正则表达式?

这是替换上述字符以获得所需字符串的一种不好的方法吗?

感谢您允许我继续学习:)

缺口

我认为部分执行此操作比较简单。首先,删除.com和比其他任何标点符号space&然后,删除一个space&仅被一个字母包围。最后,用space&单个空格替换所有剩余的序列

import re
strings = ['W. & J. JOHNSON LMT.COM',
'NORTH ROOF & WORKS CO. LTD.',
'DAVID DOE & CO., LIMITED',
'GEORGE TV & APPLIANCE LTD.',
'LOVE BROS. & OTHERS LTD.',
'A. B. & MICHAEL CLEAN CO. LTD.',
'C.M. & B.B. CLEANER INC.'
]

for s in strings:
    s = re.sub(r'\.COM|[^a-zA-Z& ]+', '', s, 0, re.IGNORECASE)
    s = re.sub(r'(?<=\b\w)\s*[ &]\s*(?=\w\b)', '', s)
    s = re.sub(r'\s*[& ]\s*', ' ', s)
    print s

输出量

WJ JOHNSON LMT
NORTH ROOF WORKS CO LTD
DAVID DOE CO LIMITED
GEORGE TV APPLIANCE LTD
LOVE BROS OTHERS LTD
AB MICHAEL CLEAN CO LTD
CM BB CLEANER INC

演示在extrester

更新资料

这是在编辑问题之前写入的,该问题更改了最后数据的所需结果。进行编辑后,上述代码可以简化为

for s in strings:
     s = re.sub(r'\.COM|[^a-zA-Z ]+|\s(?=&)|(?<!\w\w)\s+(?!\w\w)', '', s, 0, re.IGNORECASE)
     print s

演示在extrester

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在两个字符串(包括第一个字符串)之间匹配的正则表达式

来自分类Dev

正则表达式在两个字符串之间获取一个字符串

来自分类Dev

正则表达式在两个字符串之间获取一个字符串

来自分类Dev

两个字符串之间的 JavaScript 正则表达式而不捕获第一个字符串

来自分类Dev

正则表达式-如何在两个字符或仅一个字符之间获取字符串?

来自分类Dev

正则表达式仅在两个字符串之间具有空格

来自分类Dev

正则表达式删除数字和单词字符串中的最后两个字母

来自分类Dev

正则表达式删除两个字符之间的字符串(不包括)

来自分类Dev

正则表达式忽略两个字符串之间的字符?

来自分类Dev

正则表达式匹配两个字符之间的字符串

来自分类Dev

正则表达式查找两个字符之间的字符串

来自分类Dev

两个字符串之间的python正则表达式匹配

来自分类Dev

两个字符串数组之间的正则表达式匹配

来自分类Dev

正则表达式在两个字符串之间获取文本

来自分类Dev

两个字符串python之间的正则表达式文本

来自分类Dev

两个字符串之间的正则表达式文本

来自分类Dev

正则表达式:计算两个字符串之间的差异

来自分类Dev

多行正则表达式在两个字符串之间读取

来自分类Dev

正则表达式每两个字符分割一个字符串

来自分类Dev

两个字符串之间或字符串末尾的R正则表达式

来自分类Dev

使用正则表达式获取两个字符串之间的子字符串

来自分类Dev

Bash正则表达式,两个字符串之间的匹配字符串

来自分类Dev

正则表达式-匹配两个字符串之间的字符串

来自分类Dev

正则表达式,以匹配其他两个字符串之间的字符串

来自分类Dev

使用正则表达式提取两个字符串之间的字符串

来自分类Dev

两个可能包含另一个字符串的字符串之间的正则表达式匹配

来自分类Dev

正则表达式评估了两个字符串,但是其中一个扫描结果正在放入额外的数组中?

来自分类Dev

AngularJS:为字符串字母表的前两个字符创建一个正则表达式,其余的应该是数字

来自分类Dev

在python中使用正则表达式从字符串中提取多个连续的两个字母

Related 相关文章

  1. 1

    在两个字符串(包括第一个字符串)之间匹配的正则表达式

  2. 2

    正则表达式在两个字符串之间获取一个字符串

  3. 3

    正则表达式在两个字符串之间获取一个字符串

  4. 4

    两个字符串之间的 JavaScript 正则表达式而不捕获第一个字符串

  5. 5

    正则表达式-如何在两个字符或仅一个字符之间获取字符串?

  6. 6

    正则表达式仅在两个字符串之间具有空格

  7. 7

    正则表达式删除数字和单词字符串中的最后两个字母

  8. 8

    正则表达式删除两个字符之间的字符串(不包括)

  9. 9

    正则表达式忽略两个字符串之间的字符?

  10. 10

    正则表达式匹配两个字符之间的字符串

  11. 11

    正则表达式查找两个字符之间的字符串

  12. 12

    两个字符串之间的python正则表达式匹配

  13. 13

    两个字符串数组之间的正则表达式匹配

  14. 14

    正则表达式在两个字符串之间获取文本

  15. 15

    两个字符串python之间的正则表达式文本

  16. 16

    两个字符串之间的正则表达式文本

  17. 17

    正则表达式:计算两个字符串之间的差异

  18. 18

    多行正则表达式在两个字符串之间读取

  19. 19

    正则表达式每两个字符分割一个字符串

  20. 20

    两个字符串之间或字符串末尾的R正则表达式

  21. 21

    使用正则表达式获取两个字符串之间的子字符串

  22. 22

    Bash正则表达式,两个字符串之间的匹配字符串

  23. 23

    正则表达式-匹配两个字符串之间的字符串

  24. 24

    正则表达式,以匹配其他两个字符串之间的字符串

  25. 25

    使用正则表达式提取两个字符串之间的字符串

  26. 26

    两个可能包含另一个字符串的字符串之间的正则表达式匹配

  27. 27

    正则表达式评估了两个字符串,但是其中一个扫描结果正在放入额外的数组中?

  28. 28

    AngularJS:为字符串字母表的前两个字符创建一个正则表达式,其余的应该是数字

  29. 29

    在python中使用正则表达式从字符串中提取多个连续的两个字母

热门标签

归档