regex - 匹配包含特定单词的网址
我正在尝试从url
元素属性中找到的XML文档中提取URL并包含字符串"s144"
。
我试图在NoteTab Light中这样做,并试图找出如何编写正则表达式,但似乎无法绕过它。我不是程序员:所以你可以想象我迷路了。
XML文件是Google Picasaweb相册RSS Feed: https://picasaweb.google.com/data/feed/base/user/100688803282112893010/albumid/6140734189321131313?alt=rss&kind=photo&hl=en_US
这就是我所拥有的:
(?s)url\s*?=\s*?'(.*?)'
它匹配url
属性中的网址,但我需要将其缩小为包含"s144"
的网址。
最终我试图获取一个URL列表并将它们重写为链接到完整图像的图像缩略图。
<a href="https://lh3.googleusercontent.com/-5veHcnzHMRE/VTmFk66WJoI/AAAAAAAAIBs/kCUSSxylUAo/s1920-Ic42/35%2520Docked%2520with%2520210BR.jpg">
<img src="https://lh3.googleusercontent.com/-5veHcnzHMRE/VTmFk66WJoI/AAAAAAAAIBs/kCUSSxylUAo/s144-Ic42/35%2520Docked%2520with%2520210BR.jpg" />
</a>
如何将匹配范围缩小到仅包含"s144"
的网址?
最佳答案:
3 个答案:
答案 0 :(得分:0)
这个怎么样:
(?s)url\s*?=\s*?'([^']*?s144[^']*?)'
答案 1 :(得分:0)
试试这个:
stack init && stack build --install-ghc && stack ghci
(?s)url\s*?=\s*?'(.*?/(s\d -).*?)'
部分的解释:
-
.*?/(s\d -).*?
- 看起来你已经知道这是什么了。 -
.*?
/(
- 网址的某些部分,以反斜杠开头 -
)
- ...后跟s
符号(表示s
,我猜...) -
size
- 后跟至少一位数字 -
\d
- 后跟-
字符
答案 2 :(得分:0)
以下似乎可以很好地对付the XML file you provided:
url\s*=\s*'(\S*?s144\S*?)'
Debuggex Demo
本文经用户投稿或网站收集转载,如有侵权请联系本站。