2 回答

TA贡献1993条经验 获得超6个赞
您可以使用此正则表达式,它使用交替来确保基本路径后跟或或行尾.
/
$
\/api\/ping(?=\.|\/|$)\S*
解释:
\/api\/ping
- 按字面意思匹配文本/api/ping
(?=\.|\/|$)
- 向前看,确保下面的内容是文字点或斜杠或行尾.
/
$
\S*
- 可选择跟随路径后面的任何非空格字符
在正则表达式中,字符集的使用是不正确的,您不需要转义点,并且在字符集中不需要交替,并且不能通过放置在字符类中来完成,并且由于字符类看起来嵌套,因此它不是必需的,也不是正确的做法。我猜你想让你的正则表达式像这样,/api/ping[[\.|\/].*]?
[]
.
|
|
\/api\/ping([.\/].*)?$
请注意,一旦您放入任何内容,那么它只被计为一个字符,允许字符集中包含的所有内容,因此它允许点或斜杠,并注意您需要转义为[]
.
/
/
\/

TA贡献1946条经验 获得超3个赞
您的模式使用一个字符类,该字符类将与列出的任何字符类匹配,也可以将其编写为 .[[./|]
它不匹配,因为字符类必须至少匹配 1 次,因为它不是可选的。/api/ping
您可以使用交替来匹配,然后断言字符串的结尾,或者通过重复 0 次或更多次匹配正斜杠,然后不是正斜杠,然后是点和 1+ 次,然后是点和扩展来匹配结构。/api/ping
|
/api/ping(?:(?:/[^/\s]+)*\.\S+|$)
这将匹配
/api/ping
按字面意思匹配(?:
非捕获组(?:/[^/\s]+)*
重复分组结构 0+ 次匹配,然后 1+ 次不匹配或空白字符/
/
\.\S+
匹配一个点和 1 倍以上的非空格字符|
或$
断言字符串的结尾)
关闭非捕获组
- 2 回答
- 0 关注
- 304 浏览
添加回答
举报