gpt4 book ai didi

字符串的Java正则表达式以数字和固定长度开头

转载 作者:搜寻专家 更新时间:2023-11-01 01:22:19 24 4
gpt4 key购买 nike

我做了一个正则表达式来检查 String 的长度,所有字符都是数字并且以数字开头,例如 123以下是我的表达

REGEX =^123\\d+{9}$";

但是它无法检查字符串的长度。它只验证那些长度为 9 且以 123 开头的字符串。但是,如果我传递字符串 1234567891,它也会验证它。但是我这边哪里不对,我该怎么办。

最佳答案

就像这里已经回答的一样,最简单的方法就是删除 +:

^123\\d{9}$

^123\\d{6}$

具体取决于您的需要。

您还可以使用另一种更复杂和通用的方法,即负向前瞻:

(?!.{10,})^123\\d+$

解释:

这:(?!.{10,}) 是一个负面前瞻(?= 是一个正面展望- ahead),这意味着如果前瞻后的表达式匹配此模式,则整个字符串不匹配。大致意思是:仅当否定先行中的模式不匹配时才满足此正则表达式的条件

在这种情况下,如果 .{10} 不匹配,则字符串匹配,这意味着 10 个或更多字符,因此仅当模式在前面匹配最多 9 个字符。

积极的前瞻恰恰相反,仅当前瞻中的条件匹配时才匹配。

出于好奇的缘故把它放在这里,它比你需要的更复杂。

关于字符串的Java正则表达式以数字和固定长度开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14958087/

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