2014-06-16 50 views
0

如何「過濾」特定範圍的字符。例如:如何選擇特定範圍的字符並將其提取到變量中?

Safari IPv4 ... 0t0 TCP wlan-237-15-16-172:52122->fa-in-f84.1e100.net:https 
Dashboard IPv4 ... 0t0 TCP wlan-237-15-16-172:52122->fa-in-f95.1e100.net:https 

每行都有相同的模式。我想在「」到「:https」之後選擇/過濾/複製IP地址到變量中。當看上面的例子我想提取這些字符:

fa-in-f84.1e100.net 
fa-in-f95.1e100.net 

我該怎麼做?

和:我能做些什麼來選擇所有行開頭(例如)「野生動物園」,然後在第二個步驟中選擇了IPS ...

+1

正則表達式 – Alex

回答

1

這樣來做:

var safari = 'TCP wlan-237-15-16-172:52122->fa-in-f84.1e100.net:https';

console.log(safari.split('->')[1].split(':https')[0]);

0

使用正則表達式:

function filter_ip(string) { 
    return string.match(/->(.+):/g)[0].replace(/[->:]/g, ""); 
} 

filter_ip("Safari IPv4 ... 0t0 TCP wlan-237-15-16-172:52122->fa-in-f84.1e100.net:https"); 
1

試試這個正則表達式希望這將解決您的問題

var str = "TCP wlan-237-15-16-172:52122->fa-in-f84.1e100.net:https"; 
var regexp = /->(.*):/g; 
var ip = regexp.exec(str)[1]; 
console.log(ip); 

DEMO

更新1

這個會發現圖案

var str = "TCP wlan-237-15-16-172:52122->fa-in-f84.1e100.net:https Dashboard IPv4 ... 0t0 TCP wlan-237-15-16-172:52122->fa-in-f95.1e100.net:https"; 
var regexp = /(->(.*?):)+?/g; 
var resArray = []; 
while ((res = regexp.exec(str)) !== null) 
{ 
    console.log("------------------",res); 
    resArray.push(res[2]); 
} 
console.log(resArray); 

DEMO

的多實例
+0

yea。謝謝。現在我得到了第一個出現在字符串中的ip。我怎麼收集他們所有的人?明白我的意思了嗎? – iMax

+1

@iMax看到我更新的代碼「更新1」,希望這會有所幫助 –

相關問題