考虑以下字符串变量:
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'
最佳答案
通过在正则表达式中使用 |
运算符,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
关于python - 正则表达式中字符周围不需要的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35974540/