【问题标题】:Difference between r'^specific expression$' and r'specific expression' [duplicate]r'^specific expression$'和r'specific expression'之间的区别[重复]
【发布时间】:2018-07-01 10:08:10
【问题描述】:

我怀疑我遇到了一个正则表达式,它检查密码是否强。 ^$ 在这个表达式中有什么影响。

a = compile(r'^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$')

它有 ^$ 符号。但是下面的代码与上面的工作方式相同。

a = compile(r'(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}')

如果是这样,为什么在上面的代码中使用了它们。或者有没有使用它的理由。提前致谢!

【问题讨论】:

  • 如果您知道为什么使用插入符号和美元符号,您就不会问区别。请检查标记的问题。

标签: python regex python-3.x


【解决方案1】:

^ 表示“行首”,$ 表示“行尾”。 在你的情况下,每场比赛都是一条线,所以你没有任何问题。

【讨论】:

  • 密码检查程序同时使用这两种变体好吗?
  • 使用这些符号更安全,因为您肯定会匹配一个完整的行。
  • 通过使用 ^ 和 $ 我们可以匹配没有换行符的字符串?
  • 不,你不能,新行的第一次出现与$匹配。
【解决方案2】:

^ 后面是字符串开头的字符串或模式,$ 后面是字符串结尾的字符串或模式。对于您的情况,您的 regex 与字符串的模式匹配,而不考虑开始或结束部分。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-02-09
  • 2019-01-03
  • 1970-01-01
  • 2014-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多