Regex 使用电子表格正则表达式提取文本和数字并替换为格式的最佳方法?

Regex 使用电子表格正则表达式提取文本和数字并替换为格式的最佳方法?,regex,replace,google-sheets,extract,Regex,Replace,Google Sheets,Extract,我目前正在从事一个非盈利项目,需要重新格式化行中数据的显示方式 目前,行数据的外观如下: Save The Children (Donation)|10.00{0}{2} 我需要它像这样输出: donation_id:save_children|quantity:1|total:10.00 第一个问题是,有时行中有多个项目: Save The Children (Donation)|10.00{0}{2} / Save The Forrest|15.50{0}{2} 在这种情况下,需要用分

我目前正在从事一个非盈利项目,需要重新格式化行中数据的显示方式

目前,行数据的外观如下:

Save The Children (Donation)|10.00{0}{2}
我需要它像这样输出:

donation_id:save_children|quantity:1|total:10.00
第一个问题是,有时行中有多个项目:

Save The Children (Donation)|10.00{0}{2} / Save The Forrest|15.50{0}{2}
在这种情况下,需要用分号分隔:

donation_id:save_children|quantity:1|total:10.00;donation_id:save_forrest|quantity:1|total:15.50
第二个问题是,我们有9个捐赠变量/原因,每个变量/原因都需要将输出转换为不同的“捐赠id”

所以每次它发现:

保存孩子,需要转换为:捐赠\u id:Save\u孩子

保存Forrest,至,捐赠\u id:Save\u Forrest

拯救动物,到,捐赠\u id:拯救动物

等等

第三个问题是捐赠金额是可变的(因为人们愿意捐赠任何东西),所以我们投入的“总”美元价值通常会有所不同

我该如何处理正则表达式呢


谢谢

您可以使用下面的正则表达式

(Save) The (Children|Forrest|Animals).*?\|([0-9]+\.[0-9]+)\{0\}\{2\}([\s\/]+)?
替换为

donation_id:$1_$2|quantity:1|total:$3;
当我测试

Save The Children (Donation)|10.00{0}{2} / Save The Forrest|15.50{0}{2}
输出为

donation_id:Save_Children|quantity:1|total:10.00;donation_id:Save_Forrest|quantity:1|total:15.50;