所以我遇到了一个问题数据集,它包含一个可变的字母序列,后面跟着六个数字序列。
输入数据流
"A", "a", "2.07", "2.35", "39.00", "82.20", "8.8", "3.80", "B", "2.26", "2.25", "40.00", "80.80", "8.1", "1.86", "D", "Et", "2.07", "2.22", "41.00", "83.80", "8.8", "3.87", "F", "2.05", "2.15", "43.00", "82.20", "8.4", "3.11", "Bc", "2.08", "2.12", "48.00", "82.60", "8.3", "2.47", "Gf", "H", "I", "2.08", "2.10", "46.00", "82.20", "8.1", "2.90", "J", "K", "1.95", "2.08", "38.00", "83.40", "8.7", "1.63", "L", "M", "1.89", "2.07", "45.00", "83.80", "9.0", "1.84", "N", "2.06", "2.05", "41.00", "80.60", "9.0", "4.09", "O", "P", "1.86", "2.04", "48.00", "81.60", "8.6", "2.60", "Qst", "R", "1.95", "2.03", "44.00", "82.80", "8.8", "1.40", "S", "2.03", "2.02", "40.00", "81.40", "8.2", "1.74", "T", "1.95", "2.01", "43.00", "81.80", "9.0", "2.30", "Unh", "1.96", "2.00", "44.00", "82.60", "9.2", "2.40", "V", "W", "C", "1.98", "1.97", "40.00", "82.00", "8.1", "1.15", "Yu", "1.90", "1.96", "41.00", "82.80", "9.6", "2.08", "Z", "a", "bi", "1.90", "1.95", "42.00", "84.20", "9.6", "1.69"
问题:
我想合并每个字母分组,在文本数据集中,我在创建正确的正则表达式以去掉"时遇到了问题">在字母之间。我的想法是专注于"强者",并将其替换为空格,从而使字母合并。
((?:[A-Za-z]*)(", ")(?:[A-Za-z]*))*
上面的意图是创建一个命名的中间捕获,忽略外部捕获并用空替换中间捕获。我错过了什么?所有的帮助都将得到亲切的接待,我们将不胜感激。
预期结果:
"Aa", "2.07", "2.35", "39.00", "82.20", "8.8", "3.80", "B", "2.26", "2.25", "40.00", "80.80", "8.1", "1.86", "DEt", "2.07", "2.22", "41.00", "83.80", "8.8", "3.87", "F", "2.05", "2.15", "43.00", "82.20", "8.4", "3.11", "Bc", "2.08", "2.12", "48.00", "82.60", "8.3", "2.47", "GfHI", "2.08", "2.10", "46.00", "82.20", "8.1", "2.90", "JK", "1.95", "2.08", "38.00", "83.40", "8.7", "1.63", "LM", "1.89", "2.07", "45.00", "83.80", "9.0", "1.84", "N", "2.06", "2.05", "41.00", "80.60", "9.0", "4.09", "OP", "1.86", "2.04", "48.00", "81.60", "8.6", "2.60", "QstR", "1.95", "2.03", "44.00", "82.80", "8.8", "1.40", "S", "2.03", "2.02", "40.00", "81.40", "8.2", "1.74", "T", "1.95", "2.01", "43.00", "81.80", "9.0", "2.30", "Unh", "1.96", "2.00", "44.00", "82.60", "9.2", "2.40", "VWC", "1.98", "1.97", "40.00", "82.00", "8.1", "1.15", "Yu", "1.90", "1.96", "41.00", "82.80", "9.6", "2.08", "Zabi", "1.90", "1.95", "42.00", "84.20", "9.6", "1.69"
简化视图(带换行符(
初始数据集
"A", "a", "2.07", "2.35", "39.00", "82.20", "8.8", "3.80",
"B", "2.26", "2.25", "40.00", "80.80", "8.1", "1.86",
"D", "Et", "2.07", "2.22", "41.00", "83.80", "8.8", "3.87",
"F", "2.05", "2.15", "43.00", "82.20", "8.4", "3.11",
"Bc", "2.08", "2.12", "48.00", "82.60", "8.3", "2.47",
"Gf", "H", "I", "2.08", "2.10", "46.00", "82.20", "8.1", "2.90",
"J", "K", "1.95", "2.08", "38.00", "83.40", "8.7", "1.63",
"L", "M", "1.89", "2.07", "45.00", "83.80", "9.0", "1.84",
"N", "2.06", "2.05", "41.00", "80.60", "9.0", "4.09",
"O", "P", "1.86", "2.04", "48.00", "81.60", "8.6", "2.60",
"Qst", "R", "1.95", "2.03", "44.00", "82.80", "8.8", "1.40",
"S", "2.03", "2.02", "40.00", "81.40", "8.2", "1.74",
"T", "1.95", "2.01", "43.00", "81.80", "9.0", "2.30",
"Unh", "1.96", "2.00", "44.00", "82.60", "9.2", "2.40",
"V", "W", "C", "1.98", "1.97", "40.00", "82.00", "8.1", "1.15",
"Yu", "1.90", "1.96", "41.00", "82.80", "9.6", "2.08",
"Z", "a", "bi", "1.90", "1.95", "42.00", "84.20", "9.6", "1.69"
预期结果:
“Aa”, “2.07", “2.35”, “39.00", “82.20”, “8.8", “3.80”,
“B”, “2.26”, “2.25", “40.00”, “80.80", “8.1”, “1.86",
“DEt”, “2.07", “2.22”, “41.00", “83.80”, “8.8", “3.87”,
“F”, “2.05”, “2.15", “43.00”, “82.20", “8.4”, “3.11"
"Bc", "2.08", "2.12", "48.00", "82.60", "8.3", "2.47",
"GfHI", "2.08", "2.10", "46.00", "82.20", "8.1", "2.90",
"JK", "1.95", "2.08", "38.00", "83.40", "8.7", "1.63",
"LM", "1.89", "2.07", "45.00", "83.80", "9.0", "1.84",
"N", "2.06", "2.05", "41.00", "80.60", "9.0", "4.09",
"OP", "1.86", "2.04", "48.00", "81.60", "8.6", "2.60",
"QstR", "1.95", "2.03", "44.00", "82.80", "8.8", "1.40",
"S", "2.03", "2.02", "40.00", "81.40", "8.2", "1.74",
"T", "1.95", "2.01", "43.00", "81.80", "9.0", "2.30",
"Unh", "1.96", "2.00", "44.00", "82.60", "9.2", "2.40",
"VWC", "1.98", "1.97", "40.00", "82.00", "8.1", "1.15",
"Yu", "1.90", "1.96", "41.00", "82.80", "9.6", "2.08",
"Zabi", "1.90", "1.95", "42.00", "84.20", "9.6", "1.69"
似乎您可以查找:
(?<!d)", "(?!d)
并且什么都不替换。在线查看此处。
(?<!d)
-防止数字出现的反向查找", "
-引号、逗号和空格的文字组合(?!d)
-防止数字出现的负前瞻
您想要具有g
、m
和i
标志的(?![A-Z])(", ")(?=[A-Z])
。
const regex = /(?![A-Z])(", ")(?=[A-Z])/gmi;
const input = `"A", "a", "2.07", "2.35", "39.00", "82.20", "8.8", "3.80",
"B", "2.26", "2.25", "40.00", "80.80", "8.1", "1.86",
"D", "Et", "2.07", "2.22", "41.00", "83.80", "8.8", "3.87",
"F", "2.05", "2.15", "43.00", "82.20", "8.4", "3.11",
"Bc", "2.08", "2.12", "48.00", "82.60", "8.3", "2.47",
"Gf", "H", "I", "2.08", "2.10", "46.00", "82.20", "8.1", "2.90",
"J", "K", "1.95", "2.08", "38.00", "83.40", "8.7", "1.63",
"L", "M", "1.89", "2.07", "45.00", "83.80", "9.0", "1.84",
"N", "2.06", "2.05", "41.00", "80.60", "9.0", "4.09",
"O", "P", "1.86", "2.04", "48.00", "81.60", "8.6", "2.60",
"Qst", "R", "1.95", "2.03", "44.00", "82.80", "8.8", "1.40",
"S", "2.03", "2.02", "40.00", "81.40", "8.2", "1.74",
"T", "1.95", "2.01", "43.00", "81.80", "9.0", "2.30",
"Unh", "1.96", "2.00", "44.00", "82.60", "9.2", "2.40",
"V", "W", "C", "1.98", "1.97", "40.00", "82.00", "8.1", "1.15",
"Yu", "1.90", "1.96", "41.00", "82.80", "9.6", "2.08",
"Z", "a", "bi", "1.90", "1.95", "42.00", "84.20", "9.6", "1.69"`;
const output = input.replace(regex, '');
console.log(output);
Regex:
("[A-Za-z]*)(", ")([A-Za-z]*")
更换为
13
在此处测试。
注意:如果您有两个以上的组要加入,只需运行搜索并替换几次即可,直到没有替换为止。