【问题标题】:Find all sequences of letters and merge, leave the six numbers alone找到所有字母序列并合并,留下六个数字
【发布时间】:2020-09-10 01:21:29
【问题描述】:

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

输入数据流

"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"

【问题讨论】:

    标签: regex


    【解决方案1】:

    好像可以找:

    (?<!\d)", "(?!\d)
    

    然后什么都没有。在这里查看online


    • (?&lt;!\d) - 负向后看以防止出现数字。
    • ", " - 引号、逗号和空格的文字组合。
    • (?!\d) - 负前瞻以防止出现数字。

    【讨论】:

    • 这是一个很好的解决方案,谢谢。我没有想到这种方法。
    【解决方案2】:

    您希望 (?![A-Z])(", ")(?=[A-Z]) 带有 gmi 标志。

    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);

    【讨论】:

    • 啊哈!谢谢!好业力飞扬。
    【解决方案3】:

    正则表达式:

    ("[A-Za-z]*)(", ")([A-Za-z]*")
    

    替换为

    \1\3
    

    测试here

    注意:如果您要加入的群组超过 2 个,只需运行搜索和替换几次 - 直到没有替换为止。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 2021-03-14
      • 2021-10-14
      • 1970-01-01
      相关资源
      最近更新 更多