是否存在允许固定大小的单词尾随空格的正则表达式?
Is there a regular expression that allows trailing spaces for a word with fixed size?
我们有一些用户输入的字段;到目前为止,我们验证此内容的规则是 [A-Z][A-Z0-9]{0,7}
。
含义:任何至少有一个字符的大写单词;从一个字符开始;整个单词最多 8 个字符。
现在我被告知我们也应该接受 "trailing" space;但当然 - 仅尾随 spaces。更新;因为第一个答案错了:整个单词的最大长度仍然是 8 个字符!因为这正是导致我提出这个问题的原因。
我想这可以用两个表达式来检查:
a) [A-Z][A-Z0-9 ]{0,7}
...必须匹配输入和
b) [ ][A-Z0-9]
不能匹配输入
(第二个表达式只是找到任何 "non-trailing" space)
但是还有一个 SINGLE 正则表达式可以用来检查这种情况吗?
或者这是其中一种情况,虽然运气好 - 正则表达式只接受上下文无关语法?!
如果你只想允许尾随 spaces 然后使用:
^[A-Z][A-Z0-9]{0,7} *$
或:
^[A-Z][A-Z0-9]{0,7}\h*$
这里\h*
是横向的白色space,只匹配末尾的0或space或制表符。
编辑: 根据已编辑的问题,您可以使用此基于前瞻性的正则表达式:
^(?=[A-Z0-9\h]{1,8}$)[A-Z][A-Z0-9]*\h*$
我们有一些用户输入的字段;到目前为止,我们验证此内容的规则是 [A-Z][A-Z0-9]{0,7}
。
含义:任何至少有一个字符的大写单词;从一个字符开始;整个单词最多 8 个字符。
现在我被告知我们也应该接受 "trailing" space;但当然 - 仅尾随 spaces。更新;因为第一个答案错了:整个单词的最大长度仍然是 8 个字符!因为这正是导致我提出这个问题的原因。
我想这可以用两个表达式来检查:
a) [A-Z][A-Z0-9 ]{0,7}
...必须匹配输入和
b) [ ][A-Z0-9]
不能匹配输入
(第二个表达式只是找到任何 "non-trailing" space)
但是还有一个 SINGLE 正则表达式可以用来检查这种情况吗?
或者这是其中一种情况,虽然运气好 - 正则表达式只接受上下文无关语法?!
如果你只想允许尾随 spaces 然后使用:
^[A-Z][A-Z0-9]{0,7} *$
或:
^[A-Z][A-Z0-9]{0,7}\h*$
这里\h*
是横向的白色space,只匹配末尾的0或space或制表符。
编辑: 根据已编辑的问题,您可以使用此基于前瞻性的正则表达式:
^(?=[A-Z0-9\h]{1,8}$)[A-Z][A-Z0-9]*\h*$