gpt4 book ai didi

数字和破折号的 Java 正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:01:59 24 4
gpt4 key购买 nike

我需要一个正则表达式来匹配只有 4(四)个连字符和 13 个数字(0-9)的行。订单未定义。我有这样的正则表达式:

^([0-9\u2013-]{17})$

但是,当我收到字符串时

----123456789---- or 1-2-3-4-5-6-7-8-9 

匹配是真的,但对我来说一定是假的。

您能否解释一下我需要使用什么才能匹配 123-345-565-45-67 或 123-1-34-5435-45- 或 ----1234567890123 等字符串?

最佳答案

试试这个正则表达式:

^(?=(?:[^-]*-){4}[^-]*$)(?=(?:\D*\d){13}\D*$).*$

Click for Demo

解释:

  • ^ - 断言行的开始
  • (?=(?:[^-]*-){4}[^-]*$) - 正面前瞻以确保只有 4 次出现 -存在于字符串中
  • (?=(?:\D*\d){13}\D*$) - 正向前瞻以确保字符串中出现 13 次数字
  • .* - 一旦满足上述 2 个前瞻,匹配除换行符以外的任何字符的 0+ 次出现
  • $ - 断言行尾

转义 \与另一个\在 JAVA 中

关于数字和破折号的 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49012633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com