python - 替换字符串中的多个元素

标签 python regex python-3.x

我正在学习中级Python。

假设有一个字符串

astring = '[Embodied cognition - Wikipedia](https://en.wikipedia.org/wiki/Embodied_cognition)'

使用string.punctuation提取单词

from string import punctuation
for delimiter in punctuation:
    if delimiter in astring:
        astring = astring.replace(delimiter, ' ')

In [7]: astring
Out[7]: ' Embodied cognition   Wikipedia  https   en wikipedia org wiki Embodied cognition '

我尝试使用map并且它有效

In [12]: a = map(astring.replace, punctuation, ' ')
In [14]: list(a)
Out[14]: [' Embodied cognition   Wikipedia  https   en wikipedia org wiki Embodied cognition ']

如何用其他先进技术解决该问题?

最佳答案

您应该研究一下正则表达式(简称 regex)。

import re

astring = '[Embodied cognition - Wikipedia](https://en.wikipedia.org/wiki/Embodied_cognition)'
re.sub(r'[^A-Za-z0-9]+', ' ', astring)
# returns:
' Embodied cognition Wikipedia https en wikipedia org wiki Embodied cognition '

关于python - 替换字符串中的多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47523313/

相关文章:

python - 每n步执行一次while循环

python - 选择等于python中子字符串的列

regex - 如何改进这个正则表达式?

正则表达式拆分期间出现javascript未定义元素

javascript - 带反向引用的正则表达式捕获组

Python导出多个数据到一个json文件

python - 如何在 python 中编写模块私有(private)/ protected 方法?

python - 比较 PandaS DataFrame 并返回第一个缺少的行

python - 使用自定义指标和 C++ DLL 时出现访问冲突读取错误和 MT4 崩溃

python-3.x - 仅在值不为空或不是空字符串的行上应用 UDF 未按预期工作