用短划线替换空格,但仅用于在文本TAGS =“”中的引号之间找到的文本

时间:2017-01-31 07:53:18

标签: regex notepad++

是否可以使用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"

2 个答案:

答案 0 :(得分:3)

使用以下正则表达式:

查找内容(?:\G(?!^)|\bTAGS=")[^\s"]*\K\s+
替换为-

<强>详情:

  • (?:\G(?!^)|\bTAGS=") - 查找上一次成功匹配的结束(\G(?!^))或
  • [^\s"]* - 0 +以外的字符和"
  • \K - 匹配重置运算符,丢弃目前为止匹配的文本
  • \s+ - 1+空格

请参阅以下设置的屏幕截图:

enter image description here

答案 1 :(得分:2)

在正则表达式模式下使用以下查找/替换模式,并执行全部替换以覆盖整个文档(或所需的选项)。请注意,我不会检查TAGS="...",前提是您在文档中的任何其他位置都没有tag123tag 123形式的字符串。

<强>查找

tag\s+(\d*)

<强>替换

tag-$1

<强>输入:

tag1,tag2,tag 3,tag4,tag 5

<强>输出:

tag1,tag2,tag-3,tag4,tag-5