0

我想创建一个匹配一个单词的正则表达式,如果它找到它。如果它没有找到我希望它尝试匹配第二个单词的单词。我想对第三个和第四个单词重复这个过程。

我需要一个“其他”指令。我尝试(?(?=regex)then|else)了在http://www.regular-expressions.info/conditional.html找到的方法,但没有成功。我把它写成,(?(?=1080)1080|720)但它甚至不被认为是一个有效的表达。

注意:我正在从网站下载视频,我想下载最高质量的视频。我正在使用 Firefox 附加组件 DownThemAll,它允许用户使用正则表达式创建自定义过滤器。具体来说,我想要一个匹配单词的表达式1080,如果没有找到它尝试匹配720,如果它没有找到它尝试匹配540,如果它没有找到它尝试匹配480p/download

4

2 回答 2

2

你所需要的只是交替

1080|720|540|480p/download

引擎将尝试匹配最左边的模式。

于 2012-11-18T23:34:51.847 回答
0

我猜 DownThemAll 使用的正则表达式引擎(可能是 JavaScript)不支持此功能(正如您在链接的文章中看到的那样,只有 Perl、PCRE 和 .NET 支持)。

但是,在大多数引擎中,应从左到右尝试替代方案。所以这应该这样做:

(1080|720|540|480)p/download
于 2012-11-18T23:35:27.573 回答