正则表达式中字符周围的不需要的空格

时间:2016-03-13 19:10:57

标签: python regex python-3.x

考虑以下字符串变量:

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'

1 个答案:

答案 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