正则表达式,如何识别由空格分隔的2或3个单词(任何非空格)

时间:2014-12-24 14:22:22

标签: java regex

我正在使用java并且正在尝试编写一个除此之外的正则表达式:

jkdsl;a asdfasdf asdfjkl;

和这个

789u 13789u

但不是这个

HJKs9

或者

hiop hiopwer rewk3 fheio2

到目前为止,我有这个,但它似乎没有用(我使用过在线正则表达式测试仪):

(\S+\s){2,3}

我想:

  • \ S +表示不止一个非空格

  • \ s表示空白

  • (X){2,3}表示连续出现2-3次(包括)X

我哪里出错?

(我把它作为"(\\S+\\s){2,3}"放在java中,因为\是一个转义)

1 个答案:

答案 0 :(得分:2)

匹配有两个或三个单词的行。

^\S+(?:\s+\S+){1,2}$

Java正则表达式,

^\\S+(?:\\s+\\S+){1,2}$

\S+匹配一个或多个非空格字符。 \s+匹配一个或多个空格字符。 {1,2}调用重复量词,重复前一个(?:\s+\S+)一次或两次令牌。 $断言我们在行尾。

OR

如果您的输入包含前面或后面的空格,请使用此选项。

"^\\s*\\S+(?:\\s+\\S+){1,2}\\s*$"

DEMO