正则表达式最佳实践?

时间:2012-04-26 23:36:03

标签: regex database content-management-system

今天我收到了一封来自我老板的电子邮件,说要更改我们的客户网站上的java脚本代码中的正则表达式

[a-zA-Z0-9]+[a-zA-Z0-9_\.\-]

[a-zA-Z0-9]+[a-zA-Z0-9_\-\.]

因为我们的一位客户抱怨说这不是正则表达式的最佳做法,而且会导致他们的CMS及其数据库出现问题。

看看这两个正则表达式,在我看来它们完全相同。

。和 - 在最后交换,但这不应该有所作为。应该吗?

我错过了什么吗?

我们客户公司的开发人员非常坚定地要求我们改变它。

有人可以解释一下吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

没有功能差异。

如果有任何问题与正则表达式有关,那么它是一个非标准/错误的实现。我建议确切地找出问题所在。

虽然我认为没有理由改变它,但我认为没有理由改变它,所以做你想做的事。

提示:我猜测正则表达式写错了。如果我知道它应该是什么意思,我会写下来:

[a-zA-Z0-9]+[_\.\-]?

答案 1 :(得分:2)

如果您在字符组中使用-,则它会持续使用,否则它表示一系列字符,例如A-Z。如果你像你一样逃避它,那么它可以在任何地方。

他们使用的CMS或其他代码可能会取消正则表达式,因此在这种情况下,如果-不是组中的最后一个字符,则会抛出错误。我会说,尽可能少的正则表达式中的转义字符使其更容易阅读,但这是从个人的角度来看。