2
也许我没有正确表达这个意思,但是我找不到任何有用的东西,所以在这里。我需要匹配数字和破折号,确切长度为10个符号。正则表达式是这样的:具有特定长度的复杂正则表达式
/[0-9-]{10}/g
美中不足的是,这将匹配“8888888888”和“----------”分别,我想避免这种情况。我的输出应该类似于一个数字,因此如果' - '和'数字'都存在,我想匹配。它应该看起来像'555-45-217','12 -34-5412','1-2- 3-45-6。这是我到目前为止:
([0-9]+-[0-9]+(-[0-9]+)*){10}
但这不起作用。跟随()时,{}只会给出错误。所以我的问题是我怎样才能达到这样的目标?只有在两个条件(规则内部和适当数量的符号)存在的情况下才能匹配。
您好,Wiktor。感谢您的回应。现在,让我看看我是否正确地得到了这个结果 - 在第一组()中,您使用积极lookahead指定长度,然后为多个'-num'部分设置规则。现在我试图修改它,以便在开始时匹配'+' - '+ 555-12-345'。最后,我需要在长字符串中找到匹配项,所以我需要我的结束分隔符看起来像'(?= \ s |%)'。也许这最后一个lookahead不起作用,因为前一个lookahead只指定了10个长度的符号? IDK的。这是我的尝试:\ +(?= [0-9 - ] {10} $)\ d +(?: - \ d +)+(?= \ s | $) – Alex
可选的'+'救援:['\ +?(?= [0-9-] {10} \ b)\ d +(?: - \ d +)+ \ b'](https://regex101.com/r/tLQ3fZ/ 2)。 –