【发布时间】:2013-12-12 16:04:24
【问题描述】:
我有一个键值对中的数据文本文件,我已设法将其转换为一种格式,其中键值对都由它们之间的下划线分隔,并且键与值由冒号。我认为这种格式对于保持数据中的空间完整无缺很有用。这是一个用数据替换~~~~~~~s 的示例。
_ID:~~~_NAME:~~~~~_DESCRIPTION:~~~~~~~_TYPE1:~~~~~~_TYPE2:~~~~~~ ...etc
我想将其转换为 MySQL 脚本以将数据插入表中。我的问题是每条记录中都没有包含可为空的字段。例如记录有_TYPE1:,可能有也可能没有_TYPE2:
... _DESCRIPTION:~~~~~~_TYPE1:~~~~~~_TYPE2:~~~~~~_ADDRESS:~~~~~~~ ...
... _DESCRIPTION:~~~~~~_TYPE1:~~~~~~_ADDRESS:~~~~~~~ ...
... _DESCRIPTION:~~~~~~_TYPE1:~~~~~~_ADDRESS:~~~~~~~ ...
... _DESCRIPTION:~~~~~~_TYPE1:~~~~~~_TYPE2:~~~~~~_ADDRESS:~~~~~~~ ...
... _DESCRIPTION:~~~~~~_TYPE1:~~~~~~_ADDRESS:~~~~~~~ ...
我想通过在每个 _TYPE1 之后插入 _TYPE2: 来解决此问题,而不使用 _TYPE2:。由于只有几种不同的可能类型,我设法在每个_TYPE1:~~~~~~ 之后选择_,而后面没有TYPE2:。我使用了以下正则表达式,其中egtype 是可能类型的一个示例:
(?<=_TYPE1:egtype)_(?!TYPE2:)
此时,我所要做的就是将 _ 替换为 _TYPE2:_ 并且每个字段都存在于每一行中,这样可以轻松地将每一行转换为 MySQL 插入语句!不幸的是,当我单击“替换”按钮时,Notepad++ 没有替换它。我不确定为什么。
有谁知道为什么不使用特定的正则表达式将_ 替换为_TYPE2:_?或者是否有人对如何将所有这些数据转换为 MySQL 插入脚本有任何其他建议?
【问题讨论】:
标签: mysql regex replace notepad++