2017-08-18 60 views
-1

的某些部分我有一个像这样与行的文件:正则表达式替换记事本+ +,但线

<a href="/foldername/Subfolder/anothersubfolder/Name%20of%20Document.pdf">Name%20of%20Document.pdf</a> 

我想将其转换为:

<a href="/foldername/Subfolder/anothersubfolder/Name%20of%20Document.pdf">Name of Document.pdf</a> 

即,我想用文字空格字符替换转义空格字符(%20),但只能在链接名称中,而不能在url中。

我还需要删除其他转义字符,而不仅仅是空格。

我该如何在记事本++中做到这一点?

+0

这不是一个代码或正则表达式写作服务。你做了什么努力来尝试自己做到这一点?提示:首先编写一个正则表达式,将第一个'>'之后和下一个'<'之前的部分隔离到一个捕获组中,然后使用该捕获组内容替换'%'+后面的两个数字以空格。 –

+0

每行只有一个href吗?线上还有其他事情吗? – Toto

+0

@KenWhite克服自己......我很清楚这个网站是什么 - 它是为了提出你不知道答案的问题。也许你可以看到是否有社交互动stackexchange网站可以帮助你。你给我一个提示是如此坦荡,但我仍然希望能够回答这个问题。我知道如何使用括号和'\ 1'来做反向引用,但不知道如何在记事本++中替换反向引用中的多个替换。在问这个问题之前,我疯狂地搜索了一下,我祈祷我付出足够的努力来满足你。 – localhost

回答

2

当你有每行只有一个HREF,你可以这样做:

  • 按Ctrl + ^h
  • 查找内容:^.+?>[^%\n\r]*\K%20
  • 替换为:A SPACE
  • 全部替换

点击所有多次根据需要更换

说明:

^   : begining of line 
.+?   : 1 or more any character, not greedy 
>   : literally > 
[^%\r\n]* : 0 or more character that is not % or line break 
\K   : Forget all we have seen until this point 
%20   : literally %20 
  • 不检查. matches newline
+0

非常感谢您的回答,但它对我来说无法正常工作。它适用于前几个'全部替换',但在此之后,每隔一行删除%20的href,就像忽略换行符一样。我没有'。匹配换行符“。我怎样才能让它尊重换行符而不是过去?它看起来像'[^%\ r \ n] *'部分应该已经这样做了。 – localhost

+0

@localhost:奇怪,它对我来说工作得很好。你可以编辑你的问题,并添加你正在处理的文件的摘录。添加,我有不同的解释正则表达式。这是你必须使用的解释。我在编辑答案。 – Toto

+0

@localhost:你使用的是什么版本的Npp。这里我有7.4.2 – Toto

相关问题