Wolfram mathematica Mathematica中一条长线上的清理数据

Wolfram mathematica Mathematica中一条长线上的清理数据,wolfram-mathematica,Wolfram Mathematica,我有一个大约12Mb的文件,具有以下类型 [["1",-154],["2",-100],["3",-28],["4",-66],["5",-222],["6",-309],["7",-196],["8",-50],["9",-53],["10",-209],["11",-355],["12",-350],["13",-269],["14",-264],["15",-392],["16",-513],["17",-515],["18",-434],["19",-418],["20",-505],[

我有一个大约12Mb的文件,具有以下类型

[["1",-154],["2",-100],["3",-28],["4",-66],["5",-222],["6",-309],["7",-196],["8",-50],["9",-53],["10",-209],["11",-355],["12",-350],["13",-269],["14",-264],["15",-392],["16",-513],["17",-515],["18",-434],["19",-418],["20",-505],["21",-592],["22",-559],["23",-422],["24",-384],["25",-539],["26",-716],["27",-713],["28",-593],["29",-534],["30",-647],["31",-813],["32",-857],["33",-711],["34",-582],["35",-594],["36",-700],["37",-721],["38",-600],["39",-487],["40",-490],["41",-589],["42",-630],["43",-502],["44",-365],["45",-340],["46",-403],["47",-420],["48",-291],["49",-136],["50",-98],["51",-218],["52",-285],["53",-198],["54",-52],["55",-58],["56",-213],["57",-334],["58",-301],["59",-195],["60",-195],["61",-324],["62",-470],["63",-465],["64",-378],["65",-381],["66",-546],["67",-734],["68",-767],["69",-695],["70",-683],["71",-804],["72",-991],["73",-1050],["74",-937],["75",-850],["76",-912],["77",-1041],["78",-1065],["79",-972],["80",-931],["81",-1030],["82",-1186],["83",-1233],["84",-1113],["85",-992],["86",-1051],["87",-1206],["88",-1299],["89",-1218],["90",-1112],["91",-1150],["92",-1287],["93",-1345],["94",-1239],["95",-1140],["96",-1147],["97",-1276],["98",-1363],["99",-1312],["100",-1206],["101",-1184],["102",-1297],["103",-1378],["104",-1297],["105",-1141],["106",-1113],["107",-1219],["108",-1325],["109",-1284],["110",-1147],["111",-1103],["112",-1179],["113",-1300],["114",-1262],["115",-1141],
我想用Mathematica来清理它,删除引号之间的所有符号和数字,只留下一个空格,格式如下:

-154 -100 -28 -66 -222 -309 -196 etc…

我怎么能这样做?我是Mathematica的新手,关于“如何清理HTML文件”或“如何清理ZIP文件”的教程并没有很好地澄清我的问题。

您可以尝试将其作为字符串导入,将
[
替换为
{
并将
]
替换为
Eval
ing它,然后用
Last@Tranpose

data = Import["your_data.txt"];
Last@Transpose@
  ToExpression[StringReplace[data, {"[" -> "{", "]" -> "}"}]]

当然,有很多更好的方法可以做到这一点。斯莱特的想法也很管用。你会发现在Mathematica中有一百万种方法可以完成这类事情。

Mathematica确实有正则表达式支持,还有一个通用的字符串操作包。大致如下:

string = "[["1",-154],["2",-100],["3",-28],["4",-66]]"
StringSplit[string, "],["]

StringReplace[strings, RegularExpression["[\"[0-9]+\"]] -> " "]

您可能需要稍微考虑一下,但这就是想法。

这里有另一种方法,可以避免
表达
(理论上可以运行您不打算运行的代码):

Import["data.txt", "Text"];

StringSplit[%, {"[[", "],[", "]]", ","}][[2 ;; ;; 2]];

StringJoin[Riffle[%, " "]]

Export["out.dat", %, "Text"]