我需要一个正则表达式来检查字段是否为空或者是否正好是 13 位数字?
问候,
弗朗西斯·P.
尝试这个 (另请参阅 rubular.com http://www.rubular.com/r/SYIlg16mHn):
^(\d{13})?$
解释:
-
^
, $
是字符串锚点的开头和结尾
-
\d
是数字的字符类
-
{13}
是精确的有限重复
-
?
是“零个或一个”,即可选
参考
-
正则表达式.info/锚点 http://www.regular-expressions.info/anchors.html, 字符类 http://www.regular-expressions.info/charclass.html, 重复 http://www.regular-expressions.info/repeat.html, Optional http://www.regular-expressions.info/optional.html
关于空的定义
上面的模式匹配一个 13 位数字的字符串,或者一个空字符串,即长度为零的字符串。如果“空”的意思是“空白”,即可能只包含空白字符,那么您可以使用\s*
作为交替。交替,简单来说就是你如何搭配this|that
. \s
是空白字符的字符类,*
是“零个或多个”重复。
所以也许是这样的(另请参阅 rubular.com http://www.rubular.com/r/Rsdagsp0wt):
^(\d{13}|\s*)?$
参考
- 正则表达式.info/Alternation http://www.regular-expressions.info/alternation.htm
相关问题
- 正则表达式,检查行是否为空 https://stackoverflow.com/questions/3012788/regex-check-if-a-line-is-blank-or-not/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)