regexjava模式。编译表达式“/login?(\\?.+)?”
我试图理解下面给出的正则表达式:
"/login?(\\?.+)?"
我已经讲过了Java docs,但是我不能清楚地理解这个表达的目的
我知道它查找以/login
开头的字符串,然后字符?(\\?.+)?
代表什么?
请帮助我理解这一点
你可以在下面搜索框中键入要查询的问题!
我试图理解下面给出的正则表达式:
"/login?(\\?.+)?"
我已经讲过了Java docs,但是我不能清楚地理解这个表达的目的
我知道它查找以/login
开头的字符串,然后字符?(\\?.+)?
代表什么?
请帮助我理解这一点
# 1 楼答案
/login
匹配文字字符/login
?
使n
成为可选的(parentheses)
捕获组1内部的匹配项/login
\\?
匹配文本?
。在普通正则表达式中,它应该是\?
,但在Java字符串中,反斜杠必须用另一个反斜杠转义.+
匹配一个或多个字符,其中可以包括spaces and my dog!
样本匹配
对“这个正则表达式是什么意思?”的一般回答
# 2 楼答案
logi
是表达式的静态内容n?
表示n从不出现或只出现一次()?
表示()
中的表达从未出现或只出现一次\\?
表示\
从未发生或发生过一次.+
表示任何字符(新行除外)出现一次或多次# 3 楼答案
它可以选择在
/login
之后匹配文本?some-text-here
。另外/login?
使最后n
可选:它匹配以下输入:
Regex Demo
# 4 楼答案
它匹配
/logi
,后面是可选的n
(?
=前面的元素是可选的),后面是可选的组(()
限制一个组),以?
开始(由于双\
转义?
),后面是一个或多个字符(.+
,.
=任意字符,+
=一个或多个字符)