我想匹配一个包含
的字符串空格
任意数量的数字
空格
1-8个字符 - (字母数字和特殊字符)
例如,
01 Stack
这是我试过的,
\\s\\d+\\s[^.]{1, 8} - i tried here except for .,
答案 0 :(得分:2)
试试\\s\\d+\\s[^.]{1,8}
?看起来这里唯一的问题是多余的空间。
此外,\\S
适用于除空格之外的所有内容。 [^ ]
适用于一切空间。 .
适用于所有事情。
答案 1 :(得分:2)
尝试这一点,捕获(并限制)标点符号和字母数字:\s\d+\s[\p{Punct}\p{Alnum}]{1,8}
;如果你想要开始/结束行锚点,请将它全部包装在^...$
中。
如果“任意位数”表示1位或更多位数,则上述模式正常。如果它表示“零或更多数字”,则\d+
需要变为\d*
。
顺便说一下,模式[^.]
将匹配任何不是句号的东西。我认为它包含了太多,并且排除了太多。所以我选择了更具体的模式[\p{Punct}\p{Alnum}]
。
答案 2 :(得分:-1)
我不理解[^.]
的用法。角色.
匹配“任何角色”。所以你要求它匹配“任何字符除了任何字符”。相反,您应该将非空格字符与\\S
匹配。