我希望用逗号替换空格,但直到第一次/
为止,我尝试了以下方法:
import re
txt = "usera 28935 28876 0 Apr25 ? 00:07:20 /xxx/yyyy/foo/bar/zzzzz/Java/jdk-1.8.0_101/xxx/xxx -cp /xxx/yyyy/foo/bar/zzzzz"
rem = (re.sub(' +', ' ', txt)) # convert multiple spaces into single
print(re.sub(' ', ',', rem.lstrip()))
但是输出是-在每个空格后插入逗号
usera,28935,28876,0,Apr25,?,00:07:20,/xxx/yyyy/foo/bar/zzzzz/Java/jdk-1.8.0_101/xxx/xxx,-cp,/xxx/yyyy/foo/bar/zzzzz
预期产出:
usera,28935,28876,0,Apr25,?,00:07:20,/xxx/yyyy/foo/bar/zzzzz/Java/jdk-1.8.0_101/xxx/xxx -cp /xxx/yyyy/foo/bar/zzzzz
也就是说,逗号应该一直应用到第一个/
我试过向前看,向后看,但无法解决这个问题。 有人能告诉我如何做到这一点吗
您可以使用lookback,但它必须是可变长度的。因此,您需要第三方
regex
模块:只有当
/
字符在字符串的前面不存在时,第一个字符才替换空格第二个定义了一个非空格或
/
字符序列,后跟空格,以便从字符串开始尽可能多地匹配每当你遇到这样的问题,在使用正则表达式
之前考虑拆分。相关问题 更多 >
编程相关推荐