正则表达式表示不能使用一次或不使用

前端之家收集整理的这篇文章主要介绍了正则表达式表示不能使用一次或不使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以下是我的正则表达式:
[^4\d{3}-?\d{4}-?\d{4}-?\d{4}$]

但它在 – 处抛出错误.我正在使用?,应该允许 – 出现零次或一次.为什么会出错?

正则表达式的问题是模式用[和]括起来,被视为字符类标记(见 Character Classes or Character Sets):

With a “character class”,also called “character set”,you can tell the regex engine to match only one out of several characters. Simply place the characters you want to match between square brackets. If you want to match an a or an e,use [ae].

在字符类中,– 创建文字字符之间的范围.在您的情况下,这些范围无效(从具有较高值的​​字符转到具有较低值的字符),因为{4}和其他子模式被视为单独的字符,而不是特殊构造:

所以,你需要做的就是删除双方的[和]:

^4\d{3}-?\d{4}-?\d{4}-?\d{4}$

regex demo.

猜你在找的正则表达式相关文章