我相信这可以用正则表达式来完成bux似乎无法找到正确的语法。
'SYS W$_FIasdfLESTATXS TABLE PARTITION 0 '
我文件中的第三个字段有时会有空格分隔的输出,需要转换为下划线分隔输出,所以上面会变成这个。
'SYS W$_FIasdfLESTATXS TABLE_PARTITION 0 '
第三个字段并不总是相同,但是当空格分隔时,它将始终具有单个空格。如何在python中完成?
答案 0 :(得分:1)
这是您想要的REGEX: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 '
答案 1 :(得分:0)
使用lookbehind和lookahead:
(?<=\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 '
答案 2 :(得分: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