python-3.x - 不能替换美元符号
问题描述
我正在尝试编写一个将普通文本转换为乳胶代码的 python 脚本。所以我必须分别用\$、\& 和\% 替换$、& 和%。此外,由于文本是从 Wikipedia 复制的,因此我必须用空白字符串替换方括号内的内容。这是我的代码:
import re
square_bracket = r"\[[^\]]*\]"
def formatting(text):
no_brackets = re.sub(square_bracket, '', text)
and_ = re.sub('&', '\\&', no_brackets)
percentage_ = re.sub('%', '\\%', and_)
dollar_ = re.sub('$', '\\$', percentage_)
return dollar_
print(formatting("aca & akhil[3255d] 56 $ 72 %"))
输出是:
[Command: python3 -u /home/aca/Documents/python/basics/test.py]
aca \& akhil 56 $ 72 \$
[Finished in 0.131s]
我可以接受方括号、& 和 %。但是美元符号使事情变得混乱,因为它将普通文本转换为乳胶中的数学参数。我该如何解决?
解决方案
在正则表达式中,$
是一个结束锚点,所以你需要转义它:
dollar_ = re.sub('\$', '\\\\$', percentage_)
# ^
# here
如果你这样做,输出将是你所期望的:
aca \& akhil 56 \\$ 72 \%
推荐阅读
- java - 使用 apache activiti 检查下一个任务是否是结束事件
- kubernetes - Kubernetes github 存储库中有关 Cgroup 数据的代码在哪里?
- flutter - 如何在 Flutter 中对连接包进行单元测试
- python - 检测时间序列中的状态变化
- python - matplotlib - What am I doing wrong here?
- excel - 具有两个条件的 Instr 函数
- java - 如何限制 Firebase 电子邮件登录中的错误密码尝试?
- javascript - ES6 import multiple files
- ios - Constraints for two UIStackView - one under the other
- gremlin - Gremlin 查询以获取 k 距离顶点和连接它们的边