python - 如何在 Python 中填充除 ==、!=、>=、<= 之外的所有等号?

标签 python

如果我做一个简单的:

str.replace('=', ' = ')

它将填充所有等号。但是我想离开== , != , >= , <= , += , -= , /= , *=完好无损。

最佳答案

这是使用 re.sub 的一种方法:

re.sub(r'(?<![=!<>+-\/\*])(\=)(?![=!<>+-\/\*])', ' = ', s)

例子:

import re
s = 'a=d==a!=s=as<=s 5-=10 5=+4=!a'
re.sub(r'(?<![=!<>+-\/\*])(\=)(?![=!<>+-\/\*])', ' = ', s)
# 'a = d==a!=s = as<=s 5-=10 5=+4=!a'

分割:

(?+-/*])(\=)(?![=!<>+-/*])

  • 负面回顾 (?<![=!<>+-\/\*])
    • 断言下面的正则表达式不匹配
    • =!<>匹配列表中的单个字符 =!<> (区分大小写)
    • +-\/ + 范围内的单个字符(索引 43)和 / (索引 47)(区分大小写)
    • \*按字面匹配字符 *(区分大小写)
  • 第一捕获组 (\=)
    • \=匹配字符 = literally(区分大小写)
  • 负前瞻 (?![=!<>+-\/\*])
    • 断言下面的正则表达式不匹配
    • 匹配下面列表中的单个字符 [=!<>+-\/\*]
    • =!<>匹配列表中的单个字符 =!<> (区分大小写)
    • +-\/ +(索引 43)和/(索引 47)之间的单个字符(区分大小写)
    • \*按字面匹配字符 *(区分大小写)

关于python - 如何在 Python 中填充除 ==、!=、>=、<= 之外的所有等号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56257915/

相关文章:

python - 如何使用leveldb以及我可以在pycaffe界面中使用什么样的dataLayer?

python - 从 Counter 中删除最不常见的元素

python - 控制搜索深度 findall Lxml

android - 整数比较失败

python - __contains__ 函数的多个参数

python - 使用 Python 从 Azure 服务总线主题检索消息属性

python - 使用 python csv 模块创建安装 bash 脚本

python - 将 Python 稀疏矩阵的行和列乘以数组中的元素

python - Tkinter...太空侵略者...射击

java - 在我的 Java 应用程序中使用 Python 库或代码