regex - 是否可以将这两个正则表达式合并为一个?

标签 regex simplify simplification

我有以下两个正则表达式(顺带一提)。

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

我想做的是,如果 url 有问号,则将其分成两组。否则,就把所有的东西都扔到第一组。

顺序对我来说很重要的原因是,如果我将它们调换,'?'正则表达式永远不会被解雇,因为 #2 表达式(上面)会捕获所有内容。

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

注意:我试过using this website ** 帮我调试/调整 .. 但我想不通。

** 我与该网站没有隶属关系。

最佳答案

试试这个:

^~/buying/([^?]*)\??(.*)

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

关于regex - 是否可以将这两个正则表达式合并为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2963716/

相关文章:

javascript - 简化 jQuery 函数

.net - 简单代数简化的算法/操作方法

c++ - 有没有更优雅/更聪明/更简洁的方法让未知数更接近 0?

c# - : Must contain a numeric, 的正则表达式不包括 "SomeText1"

java - 密码验证不允许在屏幕末尾出现特殊字符

java - 正则表达式在 Java 中失败

isabelle - Simp 不使用 Isabelle 中提供的引理

mysql - MySQL 正则表达式方括号的元字符列表

javascript - 将数组从多个值简化为更少的值

java - java中简化分数的问题