2

我想匹配一个包含的字符串,

空间

任意位数

空间

1-8 个字符 - (字母数字和特殊字符)

例子,

 01 Stack   

这是我试过的,

\\s\\d+\\s[^.]{1, 8} - i tried here except for ., 
4

3 回答 3

2

试试\\s\\d+\\s[^.]{1,8}?看起来这里唯一的问题是多余的空间。

此外,\\S适用于除空格之外的所有内容。[^ ]适用于除空间外的所有内容。.是为一切。

于 2012-07-31T23:03:02.347 回答
2

试试这个,捕捉(并限制)标点符号和字母数字\s\d+\s[\p{Punct}\p{Alnum}]{1,8}^...$如果您想要开始/结束线锚点,请将其全部包裹起来。

如果“任意位数”表示 1 个或多个数字,那么上面的模式就可以了。如果它的意思是“零个或多个数字”,那么\d+需要变成\d*.

顺便说一句,该模式[^.]将匹配任何不是句点的内容。我认为它包含了太多,而排除了太多。所以我选择了更具体的模式[\p{Punct}\p{Alnum}]

请参阅此处的文档

于 2012-07-31T23:10:16.700 回答
-1

我不明白[^.]. 该字符.匹配“任何字符”。所以你要求它匹配“除任何字符之外的任何字符”。相反,您应该将非空格字符与\\S.

于 2012-07-31T23:08:14.410 回答