是否有一个正则表达式允许固定大小的单词尾随空格?

Gho*_*ica 1 regex context-free-grammar

我们有一些带有用户输入的字段;到目前为止,验证该内容的规则是[A-Z][A-Z0-9]{0,7}。含义:任何具有至少一个字符的大写单词;从角色开始;整个单词最多8个字符。

现在,我被告知我们也应该接受“尾随”空格。但当然-仅尾随空格。更新;第一个答案是错误的:整个单词的最大长度仍然是8个字符!因为这正是促使我提出这个问题的要点。

我猜这可以用两个表达式检查:
a)[A-Z][A-Z0-9 ]{0,7}必须匹配输入,
b)[ ][A-Z0-9]必须不匹配输入

(第二个表达式只是查找任何“非跟踪”空间)

但是,还有一个可用于检查这种情况的正则表达式吗?

还是在这种情况下,虽然运气好-正则表达式只接受上下文无关的语法?

anu*_*ava 5

如果只允许尾随空格,请使用:

^[A-Z][A-Z0-9]{0,7} *$
Run Code Online (Sandbox Code Playgroud)

要么:

^[A-Z][A-Z0-9]{0,7}\h*$
Run Code Online (Sandbox Code Playgroud)

\h*是水平空格,仅在末尾匹配0或空格或制表符。


编辑:基于已编辑的问题,您可以使用基于前瞻的正则表达式:

^(?=[A-Z0-9\h]{1,8}$)[A-Z][A-Z0-9]*\h*$
Run Code Online (Sandbox Code Playgroud)

正则演示