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