我想确保模式仅匹配以下输入:
我尝试了模式((\\d)+(-)?(\\d)*)
但是,它确实匹配41-
之类的输入。我想避免输入:-41
(以连字符开头)或以连字符结束41-
。
答案 0 :(得分:0)
试用(\d+)(?:-(\d+))?
我在regexpal中尝试了此操作,它符合您的输入。
答案 1 :(得分:0)
这应该可以用Java语法:
\\d++(?:-\\d++)?
第一部分\\d++
占有率地抓住起始数字。至少需要。
第二部分(?:-\\d++)
是一个非捕获组,匹配-
后跟一个或多个数字。再次,占有欲。 ?
使整个群组可选。
答案 2 :(得分:0)
我只是用|
分开了2个案例((\d+)|(\d+-\d+))
答案 3 :(得分:0)
我只发布此内容,因为其他答案都超过了所需的时间。试试这个:
\\d+(-\\d+)?