我有大量的条目数据集如下:
(21,2,'23 .5R25 ETADT','描述,带逗号'),
(22,1,'26 .5R25 ETADT','没有逗号的描述'),
(23,5,'20 .5R20.5','另一个描述;半圆'),
我正在尝试用标签替换列表中的每个逗号。排除单引号内的逗号。也不包括结尾逗号。
所以示例条目应该成为:
(21 [TAB] 2 [TAB] '23 .5R25 ETADT'[TAB]'描述,带逗号'),
(22 [TAB] 1 [TAB] '26 .5R25 ETADT'[TAB]'没有逗号的说明'),
(23 [TAB] 5 [TAB] '20 .5R20.5'[TAB]'另一种描述;半圆'),
我有像这样的6000行数据。 这些选项卡允许我告诉Excel将这些条目的元素导入不同的列。
我试过的正则表达式是:[ ]*,[ ]*
但是这个正则表达式选择所有逗号,甚至是单引号中的逗号。
答案 0 :(得分:2)
看起来你的每一行都有两个括号内的元素。看起来只有最后两个元素使用单引号。如果可以做出这些假设,我在Notepad ++中测试了以下内容:
^\(([^,]*),\s*([^,]*),\s*'([^']*)'\s*,\s*
\(\1\t\2\t'\3'\t
修改强>
搜索正则表达式取决于4列模型,只有最后两个元素具有单引号。在视觉上这是它的工作原理:
^\(
:找到一个左括号([^,]*)
:捕获非逗号字符,这些字符将是所有元素1 ,\s*
:匹配逗号和任何尾随空格([^,]*)
:捕获非逗号字符,这些字符将全部为元素2 ,\s*
:匹配逗号和任何尾随空格'([^']*)'
:用单引号捕获字符串,这将是元素3的全部\s*,\s*
:匹配逗号和所有周围空格