RegEx 匹配超过 5 个斜杠的字符串
RegEx match strings with more than 5 Slashs
我需要查找超过 5 个斜杠的 URL,并忽略尾部斜杠。
喜欢比赛
https://www.url.com/cat1/cat2/cat3/cat4/
不匹配
https://www.url.com/cat1/cat2/cat3/
这个可以胜任:
^(?:[^/\r\n]*/){6,}[^/\r\n]+
解释:
^ : beginning of line
(?: : start non capture group
[^/\r\n]* : 0 or more any character that is not a slash or a linebreak
/ : 1 slash
){6,} : end group, must appear 6 or more times
[^/\r\n]+ : 1 or more any character that is not a slash or a linebreak
假设您的源文本只包含一个 URL 和
仅此而已,您可以使用:
^((?:[^\/]*\/){6,}[^\/]+)\/?$
描述:
^
- 字符串的开头。
(
- 捕获组的开始,包含:
(?:
- 非捕获组的开始,由于
它后面的量词。
[^\/]*\/
- /
以外的字符序列(可能为空)
和 /
.
){6,}
- 非捕获组结束,必须出现 6 或
更多次。
[^\/]+
- /
以外的字符序列,这次是非空的。
)
- 捕获组结束。
\/?
- 尾部斜杠(如果有)。
$
- 字符串结尾。
整个匹配包含整个 URL 并且捕获组包含
您真正感兴趣的 - URL 没有 尾随
斜杠(如果有的话)。
我需要查找超过 5 个斜杠的 URL,并忽略尾部斜杠。
喜欢比赛
https://www.url.com/cat1/cat2/cat3/cat4/
不匹配
https://www.url.com/cat1/cat2/cat3/
这个可以胜任:
^(?:[^/\r\n]*/){6,}[^/\r\n]+
解释:
^ : beginning of line
(?: : start non capture group
[^/\r\n]* : 0 or more any character that is not a slash or a linebreak
/ : 1 slash
){6,} : end group, must appear 6 or more times
[^/\r\n]+ : 1 or more any character that is not a slash or a linebreak
假设您的源文本只包含一个 URL 和 仅此而已,您可以使用:
^((?:[^\/]*\/){6,}[^\/]+)\/?$
描述:
^
- 字符串的开头。(
- 捕获组的开始,包含:(?:
- 非捕获组的开始,由于 它后面的量词。[^\/]*\/
-/
以外的字符序列(可能为空) 和/
.){6,}
- 非捕获组结束,必须出现 6 或 更多次。[^\/]+
-/
以外的字符序列,这次是非空的。
)
- 捕获组结束。\/?
- 尾部斜杠(如果有)。$
- 字符串结尾。
整个匹配包含整个 URL 并且捕获组包含 您真正感兴趣的 - URL 没有 尾随 斜杠(如果有的话)。