Как выбрать определенный диапазон символов и извлечь его в переменную?

#jquery

#jquery

Вопрос:

Как я могу «фильтровать» определенный диапазон символов. Например:

 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
  

Каждая строка имеет один и тот же шаблон. Я хочу выбрать / отфильтровать / скопировать IP-адрес после «->» до «: https» в переменную. При просмотре приведенного выше примера я хочу извлечь эти символы:

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

Как я могу это сделать?

И: Что я могу сделать, чтобы выбрать все строки, начинающиеся с (например) «Safari», а затем на втором шаге выбрать IP-адреса…

Комментарии:

1. с помощью регулярных выражений

Ответ №1:

Сделайте это так :

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

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

Ответ №2:

попробуйте это регулярное выражение, надеюсь, это решит вашу проблему

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

ДЕМОНСТРАЦИЯ

ОБНОВЛЕНИЕ 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);
  

ДЕМОНСТРАЦИЯ

Комментарии:

1. да. Спасибо. теперь я получаю первый IP-адрес, который появляется в строках. как я могу собрать их все? понимаете, что я имею в виду?

2. @iMax Смотрите Мой обновленный код «обновление 1» надеюсь, это поможет

Ответ №3:

Используйте регулярные выражения:

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