首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查字符串中指定位置的空格

检查字符串中指定位置的空格
EN

Stack Overflow用户
提问于 2022-03-28 05:20:28
回答 2查看 35关注 0票数 0

我有以下问题,我已经解决了很长时间,我想知道是否有其他方法来解决它。我有以下字符串结构:

text = 01 ARA 22 - 02 GAG 23

但是,由于处理的原因,有时空格没有正确添加,它可能如下所示:

代码语言:javascript
复制
text = 04 GOR23- 02 OER 23
text = 04 ORO 21-02 RRO 24
text = 04 DRE25- 12 RIS21

当它们看起来如下:

代码语言:javascript
复制
text = 04 GOR 23 - 02 OER 23
text = 04 ORO 21 - 02 RRO 24
text = 04 DRE 25 - 12 RIS 21

要在这些特定位置添加空格,基本上我检查字符串的那个位置是否存在空格,如果不存在,则添加它。

在python中还有其他更有效的方法吗?

我很感激你的建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-28 05:27:09

您可以使用regex捕获文本中的每个组件,然后用空格替换任何缺失的空格:

代码语言:javascript
复制
import re

regex = re.compile(r'(\d{2})\s*([A-Z]{3})\s*(\d{2})\s*-\s*(\d{2})\s*([A-Z]{3})\s*(\d{2})')
text = ['04 GOR23- 02 OER 23',
'04 ORO 21-02 RRO 24',
'04 DRE25- 12 RIS21']
[regex.sub(r'\1 \2 \3 - \4 \5 \6', t) for t in text]

输出:

代码语言:javascript
复制
['04 GOR 23 - 02 OER 23',
 '04 ORO 21 - 02 RRO 24',
 '04 DRE 25 - 12 RIS 21']
票数 3
EN

Stack Overflow用户

发布于 2022-03-28 05:42:55

以下是另一种方法:

代码语言:javascript
复制
data = '04 GOR23- 02 OER 23'
new_data = "".join(char if not i in [2, 5, 7, 8, 10, 13] else f" {char}" for i, char in enumerate(data.replace(" ", "")))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71642707

复制
相关文章

相似问题

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