因此,我试图用一大堆文本制作一个表格,但这让我很头疼。基本上,以下是发生的事情:
matchingvariablelengthupccode1 productdescription1 value value value value value value value value matchingvariablelengthupccode1
matchingvariablelengthupccode2 product
description2 value value value value value value value value value matchingvariablelengthupccode2
而且产品描述有时会随机出现换行符。此外,末尾和开头的 upc 彼此匹配,但每个产品都是唯一的。
即使在处理完这个问题之后,我仍然必须弄清楚如何处理产品描述中有空格但应该在一列中,因为值和 upc 代码已经用空格分隔。此外,产品描述有时以数字开头,这会使事情变得更加困难。
尝试在 notepad++ 中使用正则表达式,但这是一个非常复杂的问题。
答案1
有一种无需编程的方法。
第1部分:将每条记录放到一行用空格替换项目描述中的换行符。
第 2 部分:删除尾随的 UPC 代码。
第 3 部分:将前 N 个空格分隔的单词转换为列,其余(>N)转换为最后一列。
准备:使用寻找命令(设置搜索模式到普通的) 查找文件中未出现的唯一字符。我将使用#
。如果您发现另一个,请相应地调整以下步骤。
第1部分:
步骤1:
使用正则表达式查找/替换:
找什么:(\R)(\d+\l* )
替换为:(#\1
注意我们的特殊字符)
搜索模式:正则表达式
“. 匹配换行符”:未选中
→ 每个 UPC 代码#
在行首的此处都有前缀。
第2步:
找什么:\R
替换为:(一个空格)
搜索模式:正则表达式
“. 匹配换行符”:未选中
→ 所有文本现在都为一行。
步骤3:
查找内容:(#
注意我们的特殊字符)
用。。。来代替:\r\n
搜索模式:正则表达式
“. 匹配换行符”:未选中
→ 所有记录现在都已排好。如有异常,请手动更正。
第2部分:
步骤1:
使用正则表达式查找/替换:
找什么:^(.*) (.*)$
用。。。来代替:\1
搜索模式:正则表达式
“. 匹配换行符”:未选中
→ 每条记录的最后一个词(据称是 UPC 代码)已被删除。
第 3 部分:
步骤1:
使用正则表达式查找/替换:
查找内容:(^(.*?)
后面有一个空格)
)
替换为:(\1#
注意我们的特殊字符)
搜索模式:正则表达式
“. 匹配换行符”:未选中
→ 行上第一个空格现在是#
。
第2步:
重复步骤 1,直到所有列之间的空格(但不在产品描述中)都变成#
“”。
#
→ 空格现在只出现在产品描述中。所有列之间都有空格。
步骤3:
将所有记录粘贴到 Microsoft Excel 中并使用文本导入向导将值导入表中。
数据类型:分隔符 (非固定宽度)
分隔符:其他:#
(将所有其他分隔符选项设置为未选中!)
→ 您的数据已保存在 Excel 的列中。