首页 > 解决方案 > 如何匹配包含 [ 后跟任何大于 0 的数字的字符串?

问题描述

我正在尝试匹配包含[后跟 大于 0 的数字的字符串。

例如,我的正则表达式模式应该匹配如下字符串:

Sample.3cb11b[1].books.addressDetail.addrDetail2
Sample.3cb11b[28].books.addressDetail.addrDetail2

并且不应该匹配

Sample.3cb11b[0].books.addressDetail.addrDetail2

我尝试过类似的东西".*\\[[1-9].*"

标签: javaregex

解决方案


我已经尝试过这个正则表达式,它似乎工作:

^([a-zA-Z0-9]*).([0-9a-z]*)(\[[1-9][0-9]*?\])(.[a-zA-Z0-9]*){3}  // this is very exact, maybe too much

.*\[[1-9][0-9]*\].*  // this seems to also work, but only cares about the 'greater than 0' part 

这是regex tester的链接。


推荐阅读