Regex 要基于拆分的正则表达式/

Regex 要基于拆分的正则表达式/,regex,Regex,我有一根像 abc123/xyz456/abc/123/aaa/zzz 我想把它分成两份 abc123, xyz456 and abc/123/aaa/zzz 基本上,我希望将前两个项目拆分为单独的项目,其余的项目可以合并 我尝试了regex^(.*)\/(.*)\/(.*)$但是它给了我另一种方法,比如zzz,aaa和abc123/xyz456/abc/123 有没有办法从左到右而不是从右到左解析?或者任何建议都会很有帮助最简单的修复方法是将前两个*修改为*?以使前两个*延迟(即,匹配

我有一根像

abc123/xyz456/abc/123/aaa/zzz 
我想把它分成两份

abc123,  xyz456 and abc/123/aaa/zzz
基本上,我希望将前两个项目拆分为单独的项目,其余的项目可以合并

我尝试了regex
^(.*)\/(.*)\/(.*)$
但是它给了我另一种方法,比如
zzz
aaa
abc123/xyz456/abc/123


有没有办法从左到右而不是从右到左解析?或者任何建议都会很有帮助

最简单的修复方法是将前两个
*
修改为
*?
以使前两个
*
延迟(即,匹配后续子模式的第一次出现):

否则,使用与任何字符匹配但不匹配的否定字符类
[^\/]

^([^\/]*)\/([^\/]*)\/(.*)$

请注意,
*
量词匹配量化子模式的零次或多次出现,如果需要至少匹配一次,则需要将其替换为
+
(一次或多次出现)

请注意,最后一个
*
可以保持原有的贪婪模式,因为它位于模式末尾,并且将匹配尽可能多的字符(换行字符除外),直到字符串末尾。将其转到
*?
(即
*?$
)没有意义,因为它会减慢匹配速度。

请尝试以下操作:

^([^\/]+)\/([^\/]+)\/(.*)$

谢谢你的解释。我还有一个问题需要我自己去理解,那就是什么才是最重要的?在第一个例子中,你在这里做什么?
*
量词的惰性版本。
*?
匹配后续子模式的第一次出现。如果
*
获取整个字符串,然后回溯以容纳后续子模式的文本,则首先跳过延迟模式,然后首先尝试所有后续子模式。如果失败,将扩展延迟量化模式,即如果可以,匹配一个字符,然后再次尝试后续子模式。看,谢谢你,威克托。谢谢你!
^([^\/]+)\/([^\/]+)\/(.*)$