如何在字符串中每 2 个字符插入 2 个空格?

How do I insert 2 spaces every 2 characters in a string?

提问人:cucca 提问时间:9/6/2023 更新时间:9/7/2023 访问量:48

问:

我有一个带有 250 个字符列的表,内容如下:

AA1BB1CC1DD1
AA1DD1EE1
AA1XX1EE2FF1AB2CB2

它是一个字符串,类似于 2char + 1 char 的数组。我需要在每个数组元素的前 2 个后面插入 2 个空格:

AA  1BB  1CC  1DD  1
AA  1DD  1EE  1
AA  1XX  1EE  2FF  1AB  2CB  2

是否有系统功能(也许是regexp_replace?),或者我需要编写一个程序?

SQL 字符串 DB2-400

评论


答:

0赞 Cone Sky 9/7/2023 #1

使用 RegEx 在 Python 中的任意数字前添加两个空格:

import re  
modified_text = re.sub(r'(\d)', r'  \1', text)

评论

0赞 cucca 9/7/2023
我忘记了 2 个字符是字母数字,所以我也可以有: AA1A51B11应该变成:AA 1A5 1B1 1
3赞 nfgl 9/7/2023 #2

您可以使用 REGEXP_REPLACE(使用 DB2 for IBM i 7.3 进行测试)

with table1 (c1) as (
  values
  'AA1BB1CC1DD1',
  'AA1DD1EE1',
  'AA1XX1EE2FF1AB2CB2',
  'AA1A51B11'
)
select c1, regexp_replace(c1, '(\w{2})(\d)', '\1  \2') modified
from table1
C1型 改 性
AA1BB1CC1DD1 AA 1BB 1CC 1DD 1
AA1DD1EE1 AA 1DD 1EE 1
AA1XX1EE2FF1AB2CB2 AA 1XX 1EE 2FF 1AB 2CB 2
AA1A51B11 AA 1A5 1B1 1

小提琴