按 space 拆分字母数字字符串并保留第一次出现的分隔符
Split alphanumeric strings by space and keep separator for just first occurence
我正在尝试拆分,然后加入 space 出现的第一个字母数字,并保持其他出现的原样,但没有得到这样做的模式。
例如:
字符串:Johnson12 在 club39
converted_string:Jhonson 12 在 club39
期望输出:
input = "Brijesh Tiwari810663 A14082014RGUBWA"
output = Brijesh Tiwari 810663 A14082014RGUBWA
代码:
import re
regex = re.compile("[0-9]{1,}")
testString = "Brijesh Tiwari810663 A14082014RGUBWA" # fill this in
a = re.split('([^a-zA-Z0-9])', testString)
print(a)
>> ['Brijesh', ' ', 'Tiwari810663', ' ', 'A14082014RGUBWA']
这是一种方法。我们可以在模式 [A-Za-z]+|[0-9]+
上使用 re.findall
,这将交替查找所有字母或所有数字单词。然后,按 space 加入结果列表以获得输出
inp = "Brijesh Tiwari810663 A14082014RGUBWA"
output = ' '.join(re.findall(r'[A-Za-z]+|[0-9]+', inp))
print(output) # Brijesh Tiwari 810663 A 14082014 RGUBWA
编辑: 根据您的更新要求,使用 re.sub
并仅替换一个:
inp = "Johnson12 is at club39"
output = re.sub(r'\b([A-Za-z]+)([0-9]+)\b', r' ', inp, 1)
print(output) # Johnson 12 is at club39
我正在尝试拆分,然后加入 space 出现的第一个字母数字,并保持其他出现的原样,但没有得到这样做的模式。 例如: 字符串:Johnson12 在 club39 converted_string:Jhonson 12 在 club39
期望输出:
input = "Brijesh Tiwari810663 A14082014RGUBWA"
output = Brijesh Tiwari 810663 A14082014RGUBWA
代码:
import re
regex = re.compile("[0-9]{1,}")
testString = "Brijesh Tiwari810663 A14082014RGUBWA" # fill this in
a = re.split('([^a-zA-Z0-9])', testString)
print(a)
>> ['Brijesh', ' ', 'Tiwari810663', ' ', 'A14082014RGUBWA']
这是一种方法。我们可以在模式 [A-Za-z]+|[0-9]+
上使用 re.findall
,这将交替查找所有字母或所有数字单词。然后,按 space 加入结果列表以获得输出
inp = "Brijesh Tiwari810663 A14082014RGUBWA"
output = ' '.join(re.findall(r'[A-Za-z]+|[0-9]+', inp))
print(output) # Brijesh Tiwari 810663 A 14082014 RGUBWA
编辑: 根据您的更新要求,使用 re.sub
并仅替换一个:
inp = "Johnson12 is at club39"
output = re.sub(r'\b([A-Za-z]+)([0-9]+)\b', r' ', inp, 1)
print(output) # Johnson 12 is at club39