regex - 使用正则表达式删除单词中的空格,包括与号
问题描述
在 python3 中,使用re.sub(pattern, replacement, string)
,我已经能够删除&符号周围的空格。例如,以下短语应修改如下:
“ A & D 替代解决方案”到“ AD 替代解决方案”
“ WESTMOUNT PLUMBING & Heating ” 到 “ WESTMOUNT Plumbing Heating ”
“全景B&B ”到“全景BB”
我已经能够修复前两种模式,但我遇到了第三种模式的问题,我尝试了以下方法:
import re
#str="A & D ALTERNATIVE SOLUTIONS LTD."
#str="WESTMOUNT PLUMBING & HEATING LTD."
str= "A PANORAMIC VIEW B & B"
str = re.sub('(?<=\\&)\s','',str)
str = re.sub('(?<=^[A-Z])\s','',str)
str = re.sub('[^\w\s]','',str)
print(str)
我怎么能得到所有的模式?
解决方案
您可以执行以下操作:
strlist = ["A & D ALTERNATIVE SOLUTIONS LTD.","WESTMOUNT PLUMBING & HEATING LTD.", "A PANORAMIC VIEW B & B"]
pattern = r'(\w{2}\s)?\s?& (\w{2})?'
[re.sub(pattern,r'\1\2',str_) for str_ in strlist]
Out[120]:
['AD ALTERNATIVE SOLUTIONS LTD.',
'WESTMOUNT PLUMBING HEATING LTD.',
'A PANORAMIC VIEW BB']
推荐阅读
- javascript - 向数组键值对添加属性
- mysql - SQL - 选择某个日期不存在的用户
- c++ - 错误:表达式列表在初始化程序 [-fpermissive] double payCalc(P, yir, y) 中被视为复合表达式;
- kubernetes - Prometheus 有很多 DOWN 指标
- reactjs - 在socketio上设置Firebase的端口号
- python - Scipy Shift函数失去精度
- javascript - 如何对齐垂直堆叠的 HighCharts 图表的左右 Y 轴?
- python - 如何使用python将二进制(应用程序/八位字节流)转换为文本文件
- java - 在 Java 中将 Base64 jpg 转换为 Base64Tiff
- mysql - 将数据 Infile 加载到 mysql 表中