删除notepad ++中两个匹配变量之间的所有换行符


1

所以我试图最终用一大堆文字制作一张桌子,但这让我很头疼。基本上这是一个关于发生了什么的想法:

    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 ++中使用正则表达式,但这是一个非常复杂的问题。


第一个空间是在UPC代码之后和最后一个空间之前吗?
datatoo 2017年

你能为这个规则定义matchingvariablelengthupccode吗?它是否包含7-15位数字(仅限数字)?
miroxlav 2017年

很不幸的是,不行。它始终以数字开头,但有时它以字母结尾并且长度可变。一些upcs只有2位数,有些最多8位。为了使它更复杂,一些产品描述引用了其他upcs,例如 12345 container description length width height cost value value 12345 12345-a container lid fits 12345 description is longer so more line breaks length width height cost value value 12345-a
Areck Degeneffe 2017年

Answers:


0

有一种没有编程的方法。

第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,直到colums之间的所有空格(但不在产品描述中)变成#'s'。

→空间现在仅用于产品说明。有#所有列之间。

第3步:

将所有记录粘贴到Microsoft Excel中,然后使用“文本导入向导”将值导入表中。

数据类型:分隔 (非固定宽度)

分隔符:其他:(# 未选中所有其他分隔符选项!)

→您的数据在Excel中的列中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.