我正在尋找一種有效的方法來一般性地從字符串中提取數據,使用另一個字符串作爲模板。僞代碼:如何使用另一個字符串作爲模板從字符串中提取數據?
var mystring = "NET,1:1,0,ipv4,192.168.1.7,255.255.255.0,192.168.1.1";
var mytemplate = "NET,[address],[lock_state],[ip_type],[ip],[netmask],[gateway]";
var result = mysteryMethod(mystring,mytemplate);
result:
{
address: '1:1',
lock_state: '0',
ip_type: 'ipv4',
ip: '192.168.1.7',
netmask: '255.255.255.0',
gateway: '192.168.1.1'
}
有在這種情況下逗號分隔符但不是所有的字符串將被分隔或將有不同的分隔符。沒有任何要解析的字符串將包含括號。這是否可能和/或明智的做正則表達式?在這種情況下速度至關重要。一如既往,您的幫助非常感謝。
我得到的分隔符可以在不同的同一字符串。但模板是否與輸入字符串具有相同的「分隔符配置」? –
我不認爲這是可能的,你已經指定它的方式。如果字符串可能未被分隔,那麼mystring =「abc」,mytemplate =「[x] [y]」的正確輸出是什麼?它可以是x:ab y:c或x:a y:bc。我認爲你需要更好地指定你想達到的目標。 – MikeFHay
可能想看看這個在Javascript中的scanf實現的靈感:http://phpjs.org/functions/sscanf:886 – MikeFHay