我希望使用Notepad ++在我拥有的多个网页上进行查找和替换。
我需要更改以下代码:
<OBJECT CLASSID="clsid:CA8A9780-280D-11CF-A24D-444553540000" WIDTH=800 HEIGHT=600> <PARAM NAME="SRC" VALUE="FILENAME.pdf"><EMBED SRC="FILENAME.pdf" HEIGHT=800 WIDTH=600> <NOEMBED> Your browser does not support embedded PDF files.</NOEMBED> </EMBED></OBJECT>
对此:
<meta http-equiv="refresh" content="0; url=FILENAME.pdf">
不幸的是,FILENAME.pdf
在我拥有的每个文件中都有所不同。因此,我想找到它显示的任何文件名的原始字符串,然后在新字符串中使用该文件名。
原始字符串中出现两次文件名(它们将相同) - value
标记param
的{{1}}属性和{{1} } <PARAM NAME="SRC" VALUE="FILENAME.pdf">
标记的属性(src
)。否则,整个原始字符串应与上面列出的完全相同。
我认为这应该是正则表达式,但我不知道从哪里开始。
提前致谢,
答案 0 :(得分:4)
查找:<OBJECT CLASSID="clsid:CA8A9780-280D-11CF-A24D-444553540000" WIDTH=800 HEIGHT=600> <PARAM NAME="SRC" VALUE="([^"]+)"><EMBED SRC="([^"]+)" HEIGHT=800 WIDTH=600>
替换为:<meta http-equiv="refresh" content="0; url="\1">
答案 1 :(得分:2)
这是一个可以在Notepad ++中使用的解决方案,这是您所要求的。
Find what: <OBJECT.*SRC="(.*)".*</OBJECT>
Replace with: <meta http-equiv="refresh" content="0; url=$1">
您可以根据需要更明确地“查找内容”。
http://regex101.com也是实验的好地方。
答案 2 :(得分:0)
你可以做一个正则表达式替换,将文件名之前的前半部分替换为欲望部分,然后用新文件的最后几个字符替换原始字符串的后半部分。
答案 3 :(得分:0)
古老的解决方案......
将<OBJECT CLASSID="clsid:CA8A9780-280D-11CF-A24D-444553540000" WIDTH=800 HEIGHT=600> <PARAM NAME="SRC" VALUE="
替换为<meta http-equiv="refresh" content="0; url=
然后用
替换第二个 <EMBED SRC="FILENAME.pdf" HEIGHT=800 WIDTH=600> <NOEMBED> Your browser does not support embedded PDF files.</NOEMBED> </EMBED></OBJECT>
一无所获。
为我工作。
编辑:注意:这不需要正则表达式,只需要在Notepad ++中进行常规查找/替换。
答案 4 :(得分:0)
我会建议您替换所需的几个......
替换1:
Find What: <OBJECT.*VALUE=
Replace With: <meta http-equiv="refresh" content="0; url=
替换2:
Find What: ><EMBED.*
Replace With: >
希望对你有用。
问候。
答案 5 :(得分:0)
尝试按regex
进行搜索并替换
很好: .*EMBED\s*SRC="([^.]*.pdf)".*
替换为: <meta http-equiv="refresh" content="0; url=\1">
此处,([^.]*.pdf)
将在\1
中捕获pdf文件名,以便它可以处理可变文件名。