gpt4 book ai didi

python - 避免正则表达式 [python]

转载 作者:行者123 更新时间:2023-11-28 19:30:50 25 4
gpt4 key购买 nike

我想知道避免正则表达式是否是个好主意。

实际上我无论如何都避免了它,有些人一直在给我建议我不应该避免它,因为如果你知道每件事的含义,比如:

[] '|' \A \B \d \D \W \w \S \Z $ * ? ...

它会很容易阅读,对吧?但我想避免使用正则表达式,我会有一个更具可读性的代码。

越大越难读,例如:validators.py

email_re = re.compile(
r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*" # dot-atom
r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-011\013\014\016-\177])*"' # quoted-string
r')@(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+[A-Z]{2,6}\.?$', re.IGNORECASE) # domain

那么,我想知道不避免使用正则表达式的原因吗?

最佳答案

不,不要回避正则表达式。它们实际上是一个非常漂亮的小工具,如果您明智地使用它们,将会为您节省大量工作。

需要避免的是尝试将它用于所有事情,在刚接触正则表达式的人变得更加温和和不那么着迷之前,这种不适感似乎会打击他们:-)

例如,不要使用它来验证电子邮件地址。验证电子邮件地址的方法是向其发送一封带有链接的电子邮件,收件人必须点击该链接才能完成“交易”。

有数十亿个有效电子邮件地址(根据 RFC),它们背后没有物理电子邮件接收器。 唯一确定有接收者的方法是发送电子邮件并等待收到并采取行动的积极证据。

如果我发现自己编写的正则表达式超过(比方说)60 个字符,我会退后一步看看是否有更易读的方法。同样,如果我写了一个正则表达式并在一周后回来并且无法立即识别它的作用,我会考虑替换它。这一段当然包含了我的意见,但它们对我很有帮助 :-)

关于python - 避免正则表达式 [python],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3597399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com