正则表达式找到&用标签之间的下划线替换所有空格

时间:2012-08-15 21:43:35

标签: regex replace sublimetext2

在将xml文档导入数据库之前,我正在尝试格式化该文档。我有几百行<Image #1 File Name>Random string to find and replace</Image #1 File Name>我对正确的发现和我的生活没有任何线索。替换正则表达式中的模式来做我需要的。我能够将所有实例与此匹配:

<Image #1 File Name>(.*?)</Image #1 File Name>

但是我不确定我需要的模式然后用打开/关闭标签之间的下划线替换空格<Image #1 File Name>Random_string_to_find_and_replace</Image #1 File Name>

2 个答案:

答案 0 :(得分:1)

awk -F'<|>' '{gsub(/ /,"_",$3);print"<"$2">"$3"<"$4">"}' yourxmlfile

好的,您可以在过滤之前使用~匹配运算符进行检查:

awk -F'<|>' '{if ($0 ~ /Image #1 File Name/) {gsub(/ /,"_",$3);print"<"$2">"$3"<"$4">"} else {print;}}' yourxmlfile

答案 1 :(得分:0)

我建议下一招:

  1. <Image #1 File Name></Image #1 File Name>替换为两个 不含空格的不同特殊单词(例如MY_START_TAGMY_END_TAG)。
  2. 用下划线替换所有空格。
  3. 恢复第一步。
  4. 分而治之:)