仅允许破折号和数字的正则表达式是什么?
一个很好的例子是在电话号码中使用。例如555-555-555、12-2314-425。
虽然我不想要像这样的条目:------------
但 -34--53-343
适合现在。
最佳答案
因此,在所述问题中,您至少需要一位数字,但除此之外是 0-9 或破折号中的任何一个。
/^[\d-]*\d[\d-]*$/
%w{555-555-555 12-2314-425 -34--53-343 -------------}.each{|s| puts "#{s} #{s.match(/^[\d-]*\d[\d-]*$/) ? 'does' : 'does not'} match"}
555-555-555 does match
12-2314-425 does match
-34--53-343 does match
------------- does not match
如果您正在尝试识别电话号码,您可能想要一些能够识别由单破折号分隔的数字序列的东西,试试这个:
/^\d+(?:-\d+)*$/
其中不包括前导或尾随破折号和双破折号。
关于ruby - 只允许破折号和数字的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11251364/