Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式:当后跟字母时,在数字后添加空格_Python_Regex_Regexp Replace - Fatal编程技术网

Python 正则表达式:当后跟字母时,在数字后添加空格

Python 正则表达式:当后跟字母时,在数字后添加空格,python,regex,regexp-replace,Python,Regex,Regexp Replace,在一组数字之后,我想在字符串中添加一个空格。例如,以下字符串应在数字后添加空格: Before After "0ABCD TECHNOLOGIES SERVICES" "0 ABCD TECHNOLOGIES SERVICES" "ABCD0 TECHNOLOGIES SERVICES" "ABCD 0 TECHNOLOGIES SERVICES" &

在一组数字之后,我想在字符串中添加一个空格。例如,以下字符串应在数字后添加空格:

Before                           After
"0ABCD TECHNOLOGIES SERVICES"    "0 ABCD TECHNOLOGIES SERVICES"
"ABCD0 TECHNOLOGIES SERVICES"    "ABCD 0 TECHNOLOGIES SERVICES"

"ABCD 0TECHNOLOGIES SERVICES"    "ABCD 0 TECHNOLOGIES SERVICES"
"ABCD TECHNOLOGIES0 SERVICES"    "ABCD TECHNOLOGIES 0 SERVICES"

"ABCD TECHNOLOGIES 0SERVICES"    "ABCD TECHNOLOGIES 0 SERVICES"
"ABCD TECHNOLOGIES SERVICES0"    "ABCD TECHNOLOGIES SERVICES 0"
我一直在尝试用Python处理正则表达式,如下所示:

text= re.sub(r'([0-9]+)?([A-Za-z]+)?([0-9]+)?',
             r'\1 \2 \3',
             text,
             0,
             re.IGNORECASE)
在前面的代码中,我得到了影响其他正则表达式转换的不需要的空格:

"0 abcd     technologies     services   "
如何在不添加不需要的空格的情况下在字符串中添加空格?

您可以使用

re.sub(r'(?<=\d)(?=[^\d\s])|(?<=[^\d\s])(?=\d)', ' ', text)
输出:

0 ABCD TECHNOLOGIES SERVICES
ABCD 0 TECHNOLOGIES SERVICES
ABCD 0 TECHNOLOGIES SERVICES
ABCD TECHNOLOGIES 0 SERVICES
ABCD TECHNOLOGIES 0 SERVICES
ABCD TECHNOLOGIES SERVICES 0

非常感谢您的解释:)
0 ABCD TECHNOLOGIES SERVICES
ABCD 0 TECHNOLOGIES SERVICES
ABCD 0 TECHNOLOGIES SERVICES
ABCD TECHNOLOGIES 0 SERVICES
ABCD TECHNOLOGIES 0 SERVICES
ABCD TECHNOLOGIES SERVICES 0