微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

以下是我的正则表达式:
[^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.

原文地址:https://www.jb51.cc/regex/357280.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐