考虑以下字符串变量:
data = '23jodfjkle lj ioerz\nlkdsjflj sldjj\\difd ioiörjlezr'
我想要创建的是具有字母字符,字符\ n和字符ö的字符串。因此我写了以下内容:
(" ".join(re.findall("[a-zA-Z]+|\n|ö", data)))
但我采取的是:
'jodfjkle ljkgfj opz ioerz \n lkdsjflj sldjj difd ioi ö rjlezr'
为什么字符周围有空格\ n和ö?为了获得没有空格的解决方案,我应该改变什么:
'jodfjkle ljkgfj opz ioerz\nlkdsjflj sldjj difd ioiörjlezr'
答案 0 :(得分:4)
通过在正则表达式中使用|
运算符,Python正则表达式解析器会将[a-zA-Z]+
,\n
和ö
视为不同的匹配项。当您使用" ".join()
时,您会在所有匹配项周围引入一个空格,包括\n
和ö
。
要获得所需的输出,请移动方括号内的\n
和ö
:
print(" ".join(re.findall("[a-zA-Z\nö]+", data)))
<强>输出强>
jodfjkle lj ioerz\nlkdsjflj sldjj difd ioiörjlezr