检查字符串中指定位置的空格
Check for blanks at specified positions in a string
我有以下问题,我已经解决了很长时间,我想知道是否有其他方法可以解决它。我有以下字符串结构:
text = 01 ARA 22 - 02 GAG 23
但由于处理有时 space 没有正确添加,它可能看起来像这样:
text = 04 GOR23- 02 OER 23
text = 04 ORO 21-02 RRO 24
text = 04 DRE25- 12 RIS21
它们应该如下所示:
text = 04 GOR 23 - 02 OER 23
text = 04 ORO 21 - 02 RRO 24
text = 04 DRE 25 - 12 RIS 21
要在那些特定位置添加 space,基本上我会检查字符串的那个位置是否存在 space,如果不存在,我会添加它。
python还有其他方法可以更有效地做到这一点吗?
感谢任何建议。
您可以使用正则表达式来捕获文本中的每个组件,然后将任何缺失的 space 替换为 space:
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' - ', t) for t in text]
输出:
['04 GOR 23 - 02 OER 23',
'04 ORO 21 - 02 RRO 24',
'04 DRE 25 - 12 RIS 21']
这是另一种方法:
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(" ", "")))
我有以下问题,我已经解决了很长时间,我想知道是否有其他方法可以解决它。我有以下字符串结构:
text = 01 ARA 22 - 02 GAG 23
但由于处理有时 space 没有正确添加,它可能看起来像这样:
text = 04 GOR23- 02 OER 23
text = 04 ORO 21-02 RRO 24
text = 04 DRE25- 12 RIS21
它们应该如下所示:
text = 04 GOR 23 - 02 OER 23
text = 04 ORO 21 - 02 RRO 24
text = 04 DRE 25 - 12 RIS 21
要在那些特定位置添加 space,基本上我会检查字符串的那个位置是否存在 space,如果不存在,我会添加它。
python还有其他方法可以更有效地做到这一点吗?
感谢任何建议。
您可以使用正则表达式来捕获文本中的每个组件,然后将任何缺失的 space 替换为 space:
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' - ', t) for t in text]
输出:
['04 GOR 23 - 02 OER 23',
'04 ORO 21 - 02 RRO 24',
'04 DRE 25 - 12 RIS 21']
这是另一种方法:
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(" ", "")))