是否可以使用Notepad ++的FIND / REPLACE函数执行以下操作?
我有一个文本文件,我希望用短划线替换文本TAGS="*"
的引号之间的空格。
示例:
TAGS="tag1,tag2,tag 3,tag4,tag 5"
应该成为:
TAGS="tag1,tag2,tag-3,tag4,tag-5"
到目前为止,我可以找到我想要的文字:
FIND WHAT: TAGS="*"
但是如何用破折号替换空格?
---------------------更新----------------- 我之前的问题是使用tag1,tag2,但文件中的实际数据没有数字,只有单词。
以下是文件中的三个实际行。我需要在TAGS =“*”的引号之间找到空格,并用虚线替换那些空格:
<DT><A HREF="http://www.kundaliniyoga.org/pranayam.html" ADD_DATE="1452557806" LAST_VISIT="1452557806" LAST_MODIFIED="1452557806" TAGS="kundalini,yoga,fire breath,breathing,breath of fire">Kundalini Yoga - Pranayama - Breathing Techniques</A>
<DT><A HREF="http://www.foodrepublic.com/2015/05/19/40-ways-world-makes-awesome-hot-dogs" ADD_DATE="1432954394" LAST_VISIT="1432954394" LAST_MODIFIED="1432954394" TAGS="recipe,cooking,hot dog">40 Ways The World Makes Awesome Hot Dogs | Food Republic</A>
<DT><A HREF="http://www.thecomputermanual.com/fix-your-boot-with-bcdedit-bootsect-bcdboot-winre-and-winpe/" ADD_DATE="1431836110" LAST_VISIT="1431836110" LAST_MODIFIED="1431836110" TAGS="windows stuff,bcdboot,bcdsect,repair,boot">Fix Windows boot, Fix your Boot sequence with BcdEdit, BootSect, BCDboot, WINRE,...</A>
在上面的行中,有3个TAGS =“*”的实例,我在这里提取它们以便于查看:
TAGS="kundalini,yoga,fire breath,breathing,breath of fire"
TAGS="recipe,cooking,hot dog"
TAGS="windows stuff,bcdboot,bcdsect,repair,boot"
在FIND / REPLACE之后,应该是:
TAGS="kundalini,yoga,fire-breath,breathing,breath-of-fire"
TAGS="recipe,cooking,hot-dog"
TAGS="windows-stuff,bcdboot,bcdsect,repair,boot"
答案 0 :(得分:3)
使用以下正则表达式:
查找内容:(?:\G(?!^)|\bTAGS=")[^\s"]*\K\s+
替换为:-
<强>详情:
(?:\G(?!^)|\bTAGS=")
- 查找上一次成功匹配的结束(\G(?!^)
)或[^\s"]*
- 0 +以外的字符和"
\K
- 匹配重置运算符,丢弃目前为止匹配的文本\s+
- 1+空格请参阅以下设置的屏幕截图:
答案 1 :(得分:2)
在正则表达式模式下使用以下查找/替换模式,并执行全部替换以覆盖整个文档(或所需的选项)。请注意,我不会检查TAGS="..."
,前提是您在文档中的任何其他位置都没有tag123
或tag 123
形式的字符串。
<强>查找强>
tag\s+(\d*)
<强>替换强>
tag-$1
<强>输入:强>
tag1,tag2,tag 3,tag4,tag 5
<强>输出:强>
tag1,tag2,tag-3,tag4,tag-5