- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取一个有效的正则表达式以在验证以下格式的 java (java.util.regex) 中使用:
最多 15 位的数字,其中 MAX 3 位可以是小数,前面有分隔符 (,)
所以,有效的是:
123456789012345 (15 digits, ok)
12345678901234,1
[编辑],这些也应该有效:
1234567890123,45
123456789012,345
到目前为止,我已经想出了以下正则表达式模式:
Pattern = [0-9]{1,15}(\,[0-9]{1,3})?
这会检查 1 到 15 位数字的范围,后跟一个可选的分隔符,然后是另外 3 位数字。但是,这不会检查输入的总长度。使用此正则表达式,值 123456789012345,123 将是有效的。
所以,我想我应该添加一个额外的表达式来检查总长度,并使用“(?=”构造来模拟逻辑 AND 行为。
所以我开始将其添加到我现有的正则表达式中,如下所示:
Pattern = (?= [0-9]{1,15}(\,[0-9]{1,3})?)
然而,这基本上导致我向它抛出的所有东西都失败了,而且我无法让它进一步工作。我不明白我在这里做错了什么?在此工作之后,我将添加另一个表达式来检查总长度,我认为类似于 (?=.{16})。
最佳答案
[编辑]意识到如果有 ,
,您想要接受总长度为 16,而且您实际上不需要在这里使用 lookaround,因为您只有两种情况。这很好用:
public static boolean isValid(String input) {
return input.matches("^(\\d{0,15}|\\d{1,12},\\d{1,3})$");
}
如果其中之一为真,则返回有效
,
,然后是 1-3 个数字[EDIT2]
好的,新的尝试:
public static boolean isValid(String input) {
return input.matches("^(\\d{0,15}|(?=.{3,16})\\d+,\\d{1,3})$");
}
如果其中之一为真,则返回有效
,
,再后跟 1-3 个数字关于java - 正则表达式无法使特殊结构 (?=x) 起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467604/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!