我不太熟悉Notepad ++中使用的“扩展”和“正则表达式”搜索和替换选项,所以我需要帮助转换这样的字符串:
<a href="http://imgur.com/my7ul.png" class="bbc_url" title="External link" rel="nofollow external">http://imgur.com/my7ul.png</a>
采用以下格式:
<img class="bbc_img" src="http://imgur.com/my7ul.png" alt="Posted Image" />
请注意,我只需要能够转换(链接)包含imgur.com图像的字符串,并且我需要能够转换每个(链接)字符串其中包含imgur.com图像,这意味着图像文件的名称会有所不同,并且需要为每个转换的字符串保持不变。 Imgur图像文件名包含任何字母和/或数字字符(包括大写和小写字符)。
非常感谢任何帮助,如果你解释你的解决方案是如何工作的,那么我也可以在所有这些之后学到一些东西。
答案 0 :(得分:1)
您可以使用以下内容进行匹配(假设您的链接和类名不包含双引号):
<a\s*href="(.*?)"\s*class="(.*?)".*?<\/a>
并将其替换为:
<img class="\2" src="\1" alt="Posted Image" />
修改:如果您只想转换imgur.com的链接..您可以使用:
<a\s*href="(http:\/\/imgur.com\/.*?)"\s*class="(.*?)".*?<\/a>
说明:
<a\s*
匹配<
后跟a
和任意数量的空格/标签(即匹配锚标记)href="(http:\/\/imgur.com\/.*?)"
按字面意思匹配href="
,然后是(
=&gt;捕获组1和http://imgur.com/
(转义的特殊字符)和.*?
任何非贪婪的字符(?
)..然后跟"
(即捕获href属性)\s*
匹配任意数量的空格class="(.*?)"
字面匹配class="
..后跟(
捕获组2和.*?
任意字符和"
(即捕获类属性).*?<\/a>
匹配任何后跟</a>
的字符(转义特殊字符)(即匹配其他内容直到锚点关闭)答案 1 :(得分:0)
我会这样做:
找到:
<a.*?href="(http://imgur\.com/[^"]+)".*?</a>
替换为:
<img class="bbc_img" src="$1" alt="Posted Image" />
<强>解释强>
<a : litteraly star tag <abstract
.*? : any character as less as possible
href=" : litteraly href="
( : start cappture group 1
http://imgur\.com/[^"]+ : that contains imgur.com
) : end of group
" : quote
.*? : any character as less as possible
</a> : litteraly </a>
对于替换部分,src属性将按组1的内容定价