var txt = "af86abf7-89b5-40f6-9099-5228f72aea88\t3984088\t` Jack Bob \t1\
t35631407838\t\t19650098\têdce27f38-07b7-40f4-b64a-a6bc8814fcb7\t4101111\t` JOHN MAROTI \t1\
t829234079446\t\t19600101\tê0b9a12ba-9b7c-484e-84bf-d75fcb18aa66\t2955999\t` BAYANABAI BUIPJ\t1
\t\t\t0\tê1795bec6-e28e-4749-a528-0d9a6082ca99\t2664383\t`JASON ASHOK MLOAP\t1\t\t\
t0\têada976ea-02f4-41f1-a1ec-397288dea7hh\t2569898\t`WILLY DHANRAJ AABJK\t2\t\t\t0";
我只想从字符串上方提取名称(例如:“ Jack Bob”和“ JOHN MAROTI”)和特定数字(“ t984088”和“ t4101111”),并将它们另存为键值对。
示例: KEY = 3984088,VALUE =杰克·鲍勃(Jack Bob),来自字符串的以下部分:
af86abf7-89b5-40f6-9099-5228f72aea88\t3984088\t` Jack Bob \t1\
t35631407838\t\
答案 0 :(得分:1)
至少有两种方法可以执行此操作:通过替换
var pairs = {};
txt.replace(/\t(\d+)\t`([^\t]+?)\t/g, (_, key, value) => {
pairs[key] = value.trim();
});
console.log(pairs);
或通过实用程序/帮助程序
function asKeyValuePairs(txt) {
var re = /\t(\d+)\t`([^\t]+?)\t/g;
var pairs = {};
while (re.test(txt))
pairs[RegExp.$1] = RegExp.$2.trim();
return pairs;
}
其中asKeyValuePairs(txt)
将返回所需的对象。
随意创建.trim()
值。
答案 1 :(得分:0)
您可以使用以下正则表达式:/([0-9]+).?`.?([a-zA-Z ]+)/g
这将匹配所有名称,密钥对。
我建议使用网站Regex101来帮助创建这样的正则表达式。