我想捕获一个强制参数和一个可选参数。
假设我有一个字符串
"X or Y"
“或 Y”是可选的。
我可以
scan /(.*) (or (.*))?/
并接收一个大小为 3 的数组,其中还包括可选 catch 的结果。
如何编写扫描以仅接收 2 个 X 和 Y 可能性的数组?
谢谢你
您可以将第二部分的外部组作为non-capturing
组:
/(.*) (?:or (.*))?/
现在您的正则表达式中只有两个捕获组:
X
部分。Y
部分。因此,您将收到仅包含这两个组的数组。因此你不会得到这个or
部分。
在这种情况下,我需要相同的答案,我用谷歌搜索了很多以获得更好的解决方案,在玩弄了逻辑之后,我终于成功了。它在每种情况下都运行良好。URL 是否有一个或两个参数。甚至我们可以在 n 个参数中扩展它。很容易做到。
我的问题陈述是,我有两个差别很小的 URL。
您可以看到第一个 URL700x0/filters:quality(90)
和第二个 URL 只有一个参数600x0
正则表达式是-(http|https):\/\/thumbor-cdn1.abc.com\/unsafe\/((.*?)|\/(.*?))\/(http|https):\/\/s3.amazonaws.com\/(abc|xyz)
上面的 url 用于示例目的,对于您的情况,您可以使用有效的 url。 谢谢!