我有一个巨大的文件(1400 页,一串文本),我想让它在 Excel 中可读。该文件包含逗号分隔的值,将其放入 Excel 通常不是问题,只是信息在 Excel 中应该位于多行上,而不是像在文档中那样都位于同一行上。
一行信息之间用 115 个逗号分隔。
我的计划是使用 Notepad++ 计算 115 个逗号,换行,再计算 115 个逗号,换行,直到遍历整个文档。完成此操作后,在 Excel 中将其结构化应该很容易。然而,我一直在努力将所需的表达式组合在一起。
如果有其他更合理的方法可以做到这一点,我愿意洗耳恭听,但可能我走错了路。我一直在尝试使用 Notepad++ 中的查找/替换工具 (CTRL+H)。
我一直在尝试使用“查找什么”:
(,*?)\,{115}
问题是,这正在寻找 115 个连续的逗号,但我需要它计算一行文本中的前 115 个逗号,然后创建一个段落/新行并再次执行此操作。任何帮助/指示都将不胜感激。我花了相当多的时间试图找到答案。
答案1
- Ctrl+H
- 找什么:
(?:.+?,){115}\K
- 替换为:
\n
或\r\n
- 检查环绕
- 检查正则表达式
- 检测
. matches newline
- Replace all
解释:
(?: # start non capture group
.+? # 1 or more any character, not greedy
, # a comma
){115} # end group, must appear 115 times
\K # forget all we have seen until this position
替代品:
\n # a line feed, change it to \r\n for windows files
这将保留每行末尾的逗号。如果要删除它,请使用:
(?:.+?,){114}.+?\K
答案2
将文本放入 inputstring 变量中并在 python 中运行。根据所需的列数更改 numberofcolums 变量。如果您没有安装 python,您可以使用在线工具,例如这个
inputstring = "one, two, three, four,five,six,seven,eight,ten,etc,,,2342354,2,1,,,1,3,,,,"
outputstring = ""
numberofcolums = 115
numberofcommas = 0
print(inputstring)
print(inputstring[3]!=",")
for character in inputstring:
if(character != ","):
outputstring += character
elif(numberofcommas == numberofcolums - 1):
outputstring += ",\
numberofcommas = 0
else:
outputstring += character
numberofcommas += 1
print(outputstring)
答案3
好的,最好的办法是编写一个脚本来解决这个问题,
如果我正确理解了您的问题,您需要拆分一个字符串。
我会用 pythonssplit()
函数来做到这一点。
之后,您可以让 Python 写入一个文件,并为从函数中获得的数组的每个部分创建一个新行split()
。
(我不是最擅长解释的人,如果你需要帮助,我可以为你制作脚本,问问就不会花很长时间,只要问就可以了)