我很不擅长找出我需要搜索的东西的正则表达式。
我有这个字段的格式为######## - #。
这里的问题是,“破折号”前面最多可以有 10 个数字,“破折号”后面最多可以有 1 到两个数字。
我怎么可能只用正则表达式来实现这一点?
我可以\d{5,}-\d{1,}
吗?哪个表示您需要在破折号前面至少有 5 个数字,在破折号之后至少需要 1 个数字?如果我在 js 中执行此操作,是否需要 dash 的特殊字符?
提前致谢。
我很不擅长找出我需要搜索的东西的正则表达式。
我有这个字段的格式为######## - #。
这里的问题是,“破折号”前面最多可以有 10 个数字,“破折号”后面最多可以有 1 到两个数字。
我怎么可能只用正则表达式来实现这一点?
我可以\d{5,}-\d{1,}
吗?哪个表示您需要在破折号前面至少有 5 个数字,在破折号之后至少需要 1 个数字?如果我在 js 中执行此操作,是否需要 dash 的特殊字符?
提前致谢。
使用量词指定您的数量{min,max}
:
/\d{,10}-\d{1,2}/
您不需要转义,-
因为它在字符类之外没有特殊含义。
var m = /(\d{0,10})-(\d{1,2})/
m[1] = // first set of numbers
m[2] = // second set
像这样的表达式会起作用:
\d{1,10}-\d{1,2}
这将匹配 1 到 10 位数字,后跟一个破折号,然后是一个或两个附加数字。
当然,如果您希望第一组数字完全是可选的,您可以用{0,10}
or替换第一个量词。{,10}
您需要使用量词。像这样的东西会起作用
[0-9]{1,10}-[0-9]{1,2} 或 [0-9]{0,10}-[0-9]{1,2} 如果可能