如果我做一个简单的:
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/