首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用regex删除带有空格的字符串(由特殊字符组成)?

如何使用regex删除带有空格的字符串(由特殊字符组成)?
EN

Stack Overflow用户
提问于 2019-09-03 12:35:36
回答 1查看 73关注 0票数 2

用Python编程。

我有两个字符串组成的列表:

  1. List1:字符串由字母组成,如a、b、c、d、‘’(单个空格),
  2. List2:字符串由特殊字符$、欧元、&、%、‘’(单个空格)组成。

示例:

代码语言:javascript
运行
复制
list1 = ['a    ', 
         'ab   ', 
         'ba  c', 
         ' a b ',
         'abd  ']

list2 = ['$    ', 
         '€&   ', 
         '€%  &', 
         ' $ € ',
         '€&$  ']

实际问题在这两个列表中都有5个以上的元素。目标是:

代码语言:javascript
运行
复制
1. to remove elements like: 'ba  c', ' a b ' from list1
2. to remove elements like: '€%  &', ' $ € ' from list2

我能够分两个步骤实现目标1:

步骤1:

代码语言:javascript
运行
复制
list1[:] = [word for word in list1 if not (word[0] == ' ')]

第2步:

代码语言:javascript
运行
复制
import re
regex1 = r"\s[\w]\s*" 
list1[:] = [word for word in list1 if not (re.search(regex1, word))]

对于list2,我能够:

代码语言:javascript
运行
复制
list2[:] = [word for word in list2 if not (word[0] == ' ')]

,它删除元素,例如

代码语言:javascript
运行
复制
' $ € '

代码语言:javascript
运行
复制
regex2 = r"\s[\W]\s*" # on list 2

不删除元素,例如

代码语言:javascript
运行
复制
'€%  &'

问题:

  1. 将step1和step2结合在list1上的准则是什么?
  2. 什么是正确的正则表达式而不是regex2?
  3. 如果list1和list2连接在一起 list12 =‘a’、'ab‘、'ba c’、‘a b’、'abd‘、'$’、‘欧元&’、‘欧元%&’、‘欧元’、‘欧元和美元’

删除元素的正则表达式是什么,例如:

代码语言:javascript
运行
复制
'ba  c', ' a b ', '€%  &', ' $ € '

如果存在以下模式,则从列表中删除该元素:

  1. 如果字符串的第一个字母是‘’(单空格),例如‘abcd',’欧元$%‘
  2. 如果字符串的字符之间存在“”(单空格),例如“欧元%&”、“a b c”、“%和欧元”

任何帮助都是非常感谢的。谢谢。:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-03 12:51:18

如果模式要匹配左对齐的单词,代码可能如下所示:

代码语言:javascript
运行
复制
list12[:] = [word for word in list12 if re.match(r'^\S+\s*$', word)]

此代码将只匹配最后包含空格的字符串。结果是:

代码语言:javascript
运行
复制
a    
ab   
abd  
$    
€&   
€&$  
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57771894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档