找到所有的字母序列并合并,不要理会这六个数字

  • 本文关键字:数字 六个 合并 regex
  • 更新时间 :
  • 英文 :


所以我遇到了一个问题数据集,它包含一个可变的字母序列,后面跟着六个数字序列。

输入数据流

"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)-防止数字出现的负前瞻

您想要具有gmi标志的(?![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

在此处测试

注意:如果您有两个以上的组要加入,只需运行搜索并替换几次即可,直到没有替换为止。

相关内容

最新更新