我相信这可以通过正则表达式来完成 bux 似乎找不到正确的语法。
'SYS W$_FIasdfLESTATXS TABLE PARTITION 0 '
我文件中的第三个字段有时具有空格分隔的输出,需要将其转换为下划线分隔输出,因此上面的内容会变成这样。
'SYS W$_FIasdfLESTATXS TABLE_PARTITION 0 '
第三个字段并不总是相同的,但是当空间分开时,它将始终具有一个空格。 如何在python中做到这一点?
这是
你想要的正则表达式: 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 '
使用回顾和前瞻:
(?<=w) (?=w)
或
(?<=S)s(?=S)
演示
在 Python 中:
>>> s='SYS W$_FIasdfLESTATXS TABLE PARTITION 0 '
>>> re.sub(r'(?<=S)s(?=S)', '_', s)
'SYS W$_FIasdfLESTATXS TABLE_PARTITION 0 '
使用此模式
(?<! ) (?! )
演示
(?<! # Negative Look-Behind
# " " a white space
) # End of Negative Look-Behind
# " " a white space
(?! # Negative Look-Ahead
# " " a white space
) # End of Negative Look-Ahead