# 限制输入中的单词数的 Java 正则表达式

> 原文： [https://howtodoinjava.com/regex/java-regex-validate-limit-the-number-of-words-in-input/](https://howtodoinjava.com/regex/java-regex-validate-limit-the-number-of-words-in-input/)

在此 [Java 正则表达式](//howtodoinjava.com/java-regular-expression-tutorials/)教程中，我们将学习测试输入文本中的*单词数是否在最小和最大限制之间*。

以下正则表达式与[的先前教程非常相似，它限制了非空白字符](//howtodoinjava.com/regex/java-regex-validate-the-minmax-length-of-input-text/ "Java Regex : Validate the (Min/Max) Length of Input Text")的数量，不同之处在于每次重复都匹配整个单词而不是单个非空白字符。 它匹配 2 到 10 个单词，跳过所有非单词字符，包括标点和空格：

> **正则表达式：`^\\W*(?:\\w+\\b\\W*){2,10}$`**

```java
List<String> inputs = new ArrayList<String>();

inputs.add("LOKESH");  //Incorrect
inputs.add("JAVA CRAZY");  
inputs.add("LOKESH GUPTA INDIA");  
inputs.add("test whether number of words in input text is between some minimum and maximum limit");  //Incorrect

String regex = "^\\W*(?:\\w+\\b\\W*){2,10}$";

Pattern pattern = Pattern.compile(regex);

for (String input : inputs)
{
    Matcher matcher = pattern.matcher(input);
    System.out.println(matcher.matches());
}

Output:

false
true
true
false

```

我建议您使用上述简单的正则表达式尝试更多的变化。

**祝您学习愉快！**