正则表达式用于检查命名约定是否有效

时间:2014-02-20 11:09:03

标签: java regex

我一直试图找出这个

的正则表达式声明
hello_123.123.123.anything123_-

规则:

hello_123.123.123(这部分是强制性的,必须有a-z和下划线以及三组数字,用点分隔)

.anything123_-(这是自由形式,它必须以点开头,然后允许任何数字,任何字母和许多短划线或下划线。)

到目前为止我已经

[a-zA-Z]+_(\d+\.*){3}

但问题是,当不需要时,点会第三次出现,并且不确定如果有尾随值,如何强制最后一个点才有效

现在我有了

([a-zA-Z]+_)(\d+\.+){2}(\d+)

它很乱并且被迫但部分工作

1 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式:

([a-zA-Z]+_(?:\d+\.){2}\d+)(\.[\w_-]+)?

Online test(点击“Java”)