替换单空间而不是多空间python

2024-06-02 20:07:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我相信这可以用regex做bux似乎找不到正确的语法。在

'SYS           W$_FIasdfLESTATXS               TABLE PARTITION           0    '

我文件中的第三个字段有时有空格分隔的输出,需要转换为下划线分隔的输出,因此上面的内容将变成这样。在

^{pr2}$

第三个字段并不总是相同的,但是当空间分开时,它总是有一个单独的空间。如何在python中实现这一点?在


Tags: 文件内容systable语法空间regexpartition
3条回答

使用后视和前瞻:

(?<=\w) (?=\w)

或者

^{pr2}$

Demo

在Python中:

>>> s='SYS           W$_FIasdfLESTATXS               TABLE PARTITION           0    '
>>> re.sub(r'(?<=\S)\s(?=\S)', '_', s)
'SYS           W$_FIasdfLESTATXS               TABLE_PARTITION           0    '

使用此模式

(?<! ) (?! )

Demo

^{pr2}$

这是您想要的正则表达式:s/([^ ]) ([^ ])/\1_\2/g

在Python中:

>>> import re
>>> my_string='SYS           W$_FIasdfLESTATXS               TABLE PARTITION           0    '
>>> re.sub(r'([^ ]) ([^ ])',r'\1_\2',my_string)
'SYS           W$_FIasdfLESTATXS               TABLE_PARTITION           0    '

相关问题 更多 >