Regex find&;将标记之间的所有空格替换为下划线
我试图在将xml文档导入数据库之前格式化它。我有几百行需要查找和替换的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标签) 用下划线替换
随机字符串
,对于正则表达式中正确的查找和替换模式,我一辈子都不知道该怎么做。我能够将所有实例与此匹配:
<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