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

标签 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'

最佳答案

通过在正则表达式中使用 | 运算符,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/

相关文章:

java - Python - 无法使用 htmlunitdriver 创建与 Selenium 独立服务器的 session

python - 持久数据库状态策略

python - 抓取某些网址时无法让我的脚本停止

python - 如何在 pytest 中的 conftest.py 文件中传递命令行选项值

python - 为什么如果有一个元素,JSON 查询返回对象,如果有多个元素,则返回列表?

python - wxpython中的对象对齐

正则表达式 R : Word-boundary and separated characters

c# - 查找并插入

c# - 如何将整个字符串与正则表达式匹配?

mysql - 在 Python 中使用 mysql.connector 执行 MySQL 触发器,该触发器计算值并将其插入到现有表中新创建的列中