我正在尝试制作一个正则表达式,它将匹配如下所示的任何字符串:
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的不错的正则表达式帮助器网站。
谢谢。
答案 0 :(得分:4)
您不恰当地使用了字符类(被[]
包围的字符类)。 []
的意思不是“从字面上匹配这些字符”。它们的意思是“匹配此列表中的任何一个字符”。对于大多数字符而言,它们本身的意思是“按字面上匹配”。
此外,您似乎想在正则表达式中匹配User:
,但是在您提供的示例中,没有:
,只有User
。请决定是否要使用:
。
\s
确实用于匹配空格。您认为这不起作用,可能是因为您的正则表达式还有其他错误,使整个过程都不匹配。
正则表达式的更正版本:
^User\s*\d+\s*Status:.*$