是否可以将这两个正则表达式连接成一个?

Pur*_*ome 3 regex simplify simplification

我有以下两个regular expressions(按顺序btw).

1. ^~/buying/(.*)\?(.*)   => foo= group 1  baa= group 2.
2. ^~/buying/(.*)         => foo= group 1  baa= nothing/empty/null/baibai
Run Code Online (Sandbox Code Playgroud)

我想要做的是,如果网址有问号,则将其拆分为两组.否则,只需将所有内容扔进第一组.

订单对我来说很重要的原因是,如果我将它们转换为"?" 正则表达式将永远不会被解雇,因为#2表达式(上图)将捕获所有.

那么..可以重新修复吗?

注意:我已经尝试使用这个网站**来帮助我调试/调整..但我无法弄明白.

**我与该网站没有任何关系.

Kob*_*obi 5

试试这个:

^~/buying/([^?]*)\??(.*)
Run Code Online (Sandbox Code Playgroud)

([^?]*) - 捕获第一组,其中不包含问号.
\?? - 可选的问号.
(.*) - 可选的第二组 - 可以为空.