我正在使用 java 并尝试编写一个除此之外的正则表达式:
jkdsl;a asdfasdf asdfjkl;
还有这个
789u 13789u
但不是这个
HJKs9
或者这个
hiop hiopwer rewk3 fheio2
到目前为止我已经有了这个,但它似乎不起作用(我使用了在线正则表达式测试器):
(\S+\s){2,3}
我认为:
\S+表示多个非空格
\s 表示空格
(X){2,3} 表示 X 连续出现 2-3 次(含)
我哪里出错了?
(我已将其放入 java 中 "(\\S+\\s){2,3}"
因为\是转义符)
最佳答案
匹配包含两个或三个单词的行。
^\S+(?:\s+\S+){1,2}$
Java 正则表达式是,
^\\S+(?:\\s+\\S+){1,2}$
\S+
匹配一个或多个非空格字符。 \s+
匹配一个或多个空格字符。 {1,2}
称为重复量词,它重复前一个标记 (?:\s+\S+)
一到两次。 $
断言我们位于行尾。
或者
如果您的输入包含前面或后面的空格,请使用此选项。
"^\\s*\\S+(?:\\s+\\S+){1,2}\\s*$"
关于java - 正则表达式,如何识别由空格分隔的 2 或 3 个单词(任何非空格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27638325/