我有一个示例请求,询问来自用户界面的各种帐户ID的注册信息,如下所示。
/api/v2/account/123/enroll?at_user=id_map:1345
随着请求不断变化的唯一因素是" 123"和" 1345"。我需要查找一个完全如上所述但具有不同数值的字符串(在java Servlet中)。
例如,如果请求如下所示
/api/v2/account/444/enroll?at_user=* // should not process
/api/v2/account/654/enroll?at_user=id_map:1432 // Should process it
我在考虑RegEx,但我是RegEx的新手。如何在RegEx中进行模式匹配
答案 0 :(得分:3)
你需要:
"^/api/v2/account/\\d+/enroll\\?at_user=id_map:\\d+$"
答案 1 :(得分:1)
使用\d+
匹配一个或多个数字。由于?
是特殊的正则表达式元字符,因此您需要按顺序对其进行转义以匹配文字?
符号。
"/api/v2/account/\\d+/enroll\\?at_user=id_map:\\d+"
即,
if (string.matches("/api/v2/account/\\d+/enroll\\?at_user=id_map:\\d+"))
{
// process
}
else
{
// don't process
}
答案 2 :(得分:0)
你可以用这个
if (yourString != null &&
yourString.startsWith("/api/v2/account/654/enroll?at_user=id_map:")) {
//do your thing
}