如何使用前瞻断言按范围限制“/”的数量
我已经厌倦了以下
^(?=/{1,3})$
但它不起作用
最简单的解决方案是使用负前瞻:
^(?!(?:[^/]*/){4})
这基本上意味着字符串不能包含 4 个斜杠。
这假设您允许斜线之间的其他字符,但最多 3 个斜线。
一个积极的版本将是^(?=[^/]*(?:/[^/]*){0,3}$)or ^[^/]*(?:/[^/]*){0,3}$,没有前瞻。当然,如果可能的话,如果没有正则表达式,这个问题是微不足道的。
让我们尝试打破最后一个:
^- 字符串的开始。[^/]*- 一些不是斜杠的字符(或没有)(?: )- 一个逻辑组。类似于(),但不捕获结果(验证后我们不需要它)/[^/]*- 斜线,后跟非斜线字符。{0,3}- 从 0 到 3 次。$- 字符串的结尾。您可以尝试以下方法(您必须说应该没有 / 之后):
^(?=/{1,3}([^/]|$))