Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex find&;将标记之间的所有空格替换为下划线_Regex_Replace_Sublimetext2 - Fatal编程技术网

Regex find&;将标记之间的所有空格替换为下划线

Regex find&;将标记之间的所有空格替换为下划线,regex,replace,sublimetext2,Regex,Replace,Sublimetext2,我试图在将xml文档导入数据库之前格式化它。我有几百行需要查找和替换的随机字符串,对于正则表达式中正确的查找和替换模式,我一辈子都不知道该怎么做。我能够将所有实例与此匹配: <Image #1 File Name>(.*?)</Image #1 File Name> (*) 但我不确定需要用下划线替换打开/关闭标记之间的空格,以查找和替换下一个技巧: 将和替换为两个 不同的不带空格的特殊单词(例如MY\u START\u标记和 MY\u END\u标签) 用下划线替换

我试图在将xml文档导入数据库之前格式化它。我有几百行需要查找和替换的
随机字符串
,对于正则表达式中正确的查找和替换模式,我一辈子都不知道该怎么做。我能够将所有实例与此匹配:

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

但我不确定需要用下划线替换打开/关闭标记之间的空格,以查找和替换下一个技巧:

  • 替换为两个 不同的不带空格的特殊单词(例如
    MY\u START\u标记
    MY\u END\u标签
  • 用下划线替换所有空格
  • 恢复第一步

  • 划分规则:)

    标签中的空格是什么?在xml标记中不能有这样的空格。这不是有效的xml。我不担心验证,因为它只用于导入数据库。Sublime Text的regex引擎不允许您搜索/替换这样的内容,IIRC,因为您无法修改捕获组。到达那里…我只需要替换xml文件中的某些节点()。这会对每个节点执行操作,并在每个打开和关闭行标记之后添加,即&我要做的是将xml文档导入到MySQL数据库中,然后对这些列执行字符串替换。应该是最简单的无痛方法。谢谢你的意见
    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