如何检查 Java 中的字符串是否等于正则表达式模式?

use*_*301 4 java regex

假设我有一个字符串,它可能是

1234

或者

12 34

或者

1 2 3 4 5

数字或空格的数量无关紧要,只要它接受一个只有数字的字符串,如果数字字符串中有空格,它仍然会接受它。我将如何为此编写正则表达式模式?

Boh*_*ian 7

使用String#matches()和正则表达式:

if (str.matches("[\\d\\s]+"))
    // string is acceptable
Run Code Online (Sandbox Code Playgroud)


Daw*_*ica 2

如果只包含空格是可以接受的,那么您想要的正则表达式是"[\\d\\s]+"

如果必须有一位或多位数字,那么您可以使用"\\s*(\\d\\s*)+"

请注意,假设您是在 Java 源代码中编写此内容,而不是从其他文本源中读取它,我已将反斜杠加倍。第二种情况下的实际正则表达式是\s*(\d\s*)+

  • @tieTYT - 这是一个完全不同的问题 - 但简短的答案是你的正则表达式要求一个或多个重复一位数字然后一个空格。如果您在字符串末尾添加一个空格,它将符合要求。 (2认同)