regex中的AND运算符不工作
本文关键字:工作 运算符 AND 中的 regex | 更新日期: 2023-09-27 17:51:03
我希望能够匹配这些值。
- 不为0次
- not 0 11次
和
- 0-9次
- 0-9 11次
似乎没有AND操作符,我试过了…
^(?=[0-9]{8}|[0-9]{11})(?=[^0]{8}|[^0]{11})$
但它似乎根本不起作用。有什么想法吗?
这个正则表达式应该可以工作:
^(?!0{8}$)(?!0{11}$)(?:'d{8}|'d{11})$
在线讲解示范:http://regex101.com/r/sH1nZ5
或者,您可以使用
^(?!0{8}$)(?!0{11}$)'d{8}(?:'d{3})?$
做同样的事情:http://regex101.com/r/iX2xM2
如果您想匹配两个集合,您可能正在寻找两个集合的并集和OR |
运算符。
^(?=[0-9]{8}|[0-9]{11})|(?=[^0]{8}|[^0]{11})$
如果您只是想匹配一个不是0
8或11次的字符串,然后是0-9
8或11次,只需将它们按顺序排列。
或者可以这样写
# ^(?=.{8}(?:.{3})?$)[1-9]+$
^
(?=
.{8}
(?: .{3} )?
$
)
[1-9]+
$