我是正则表达式的新手,我对它的工作感到困惑。我的链接是
<a href="https://vimeo.com/107828076">Embed</a>
从此标记中,如果<href>
的内部值为&#34;嵌入&#34;那么必须选择.com之后立即出现的值。
我已经尝试过这个表达式,
`<a(?:\s+href="(?:https://.*?/([^"]*))"\s*.*?)>(?:.*?(?i)Embed.*?)</a>`
我可以有更好的表达来解决这个问题吗?
答案 0 :(得分:0)
我认为这是positive lookahead
的典型例子。你必须在逻辑上做什么就是寻找Embed
。如果您的要求仅为Embed
,那么请查找>Embed<
,然后捕获.com
后面的内容。正则表达式实现了同样的目标。
正则表达式: <a.*\.com\/([^"]*)(?=.*\>Embed\<\/a>.*)
使用的标志:
- 如果您正在进行全局搜索,请g
。
<强>解释强>
(?=.*\>Embed\<.*)
查找Embed
仅。
<a.*\.com\/([^"]*)
会在.com
之后捕获所有内容,直至结束"
如果<a>
存在。
注意: .com
也会匹配。但是,由于您只需要其后的内容,您可以使用捕获的组\1
或$1
,无论您的正则表达式支持什么。
的 Regex101 Demo 强>