任意数量的空格后跟一个或多个整数的正则表达式是什么?

时间:2018-08-08 02:38:59

标签: java regex

我正在尝试制作一个正则表达式,它将匹配如下所示的任何字符串: User<spaces><Any positive integer here><spaces>Status:<anything here>

示例表达式-User 1 Status: Not Ready.

正则表达式模式-^[User].*\d+.*[Status:].*$

如您所见,我使用“。*”错误地匹配了空格。我尝试使用\ s和[“”]代替,但是它们没有用。如何在此正则表达式中处理空格或制表符?

顺便说一句,我将https://regex101.com/与JavaScript regex解析器一起使用来验证我的Regex。我不知道是否有仅用于Java而非JavaScript的不错的正则表达式帮助器网站。

谢谢。

1 个答案:

答案 0 :(得分:4)

您不恰当地使用了字符类(被[]包围的字符类)。 []的意思不是“从字面上匹配这些字符”。它们的意思是“匹配此列表中的任何一个字符”。对于大多数字符而言,它们本身的意思是“按字面上匹配”。

此外,您似乎想在正则表达式中匹配User:,但是在您提供的示例中,没有:,只有User。请决定是否要使用:

\s确实用于匹配空格。您认为这不起作用,可能是因为您的正则表达式还有其他错误,使整个过程都不​​匹配。

正则表达式的更正版本:

^User\s*\d+\s*Status:.*$

Demo