Python正则表达式:将一个符号更改为两个

时间:2018-05-26 03:18:09

标签: python regex

假设您按如下方式链接符号:

iff = chr(8801)

然后在几个空格中编写所有算法的代码。现在假设您确定以下符号几乎具有与前一个符号相同的所有属性:

jiff = chr(10231)

而不是返回并更改每个实例:

if b == iff:

if b in [iff, jiff]:

我反而想知道是否有一些正则表达式,我可以使它成为前代码

if b == iff:
如果b是= iff或jiff,

将注册为true。我在考虑一些正则表达式,但你仍然需要改变每个实例:

if b == iff:

1 个答案:

答案 0 :(得分:0)

我只会改变所有实例;从设计的角度来看,这可能会使您的生活更加轻松,并且不会混淆阅读代码的人,这与其他选择不同。但是为了避免再次犯同样的错误,你可以得到一个可接受的符号列表:

accept = [iff, jiff]

...

if b in accept:
    ...

现在您只需要在一个地方修改符号。

如果确实想要避免更改该if - 语句的所有实例,则可以使iff成为覆盖__eq__以返回的特殊对象如果符号为iffjiff,则为true:

class Sym:
    def __eq__(self, s):
        return s in (chr(8801), chr(10231))

iff = Sym()

(但如果在其他地方使用iff,如果需要实际的字符串,这将会中断。)