2017-02-22 42 views
0

Я пытаюсь выбрать большой текст и извлечь весь IP из этого текста. извлечение IP на большой текст с использованием AppleScript/JavaScript

например

fdsfsfsdfsd 36.23.227.234 Paris,FR FKGNGH 2df2df5cdsss 12151281250 November 23d, 2014 November 23d, 2014 titlethere 6928699 dfgdfgdfg REWG50 US$50.00
fdsfddfseed 96.8.225.128 London,UK FDGSDS ASDGSDG22GDS 33583855464 January 30d, 2011 January 30d, 2011 titlethere 34576874 dsfasdg ASASDF41 US€0.00

результат будет 36.23.227.234 96.8.225.128

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

ответ

1

Вы можете использовать регулярные выражения match() функции в JavaScript:

var str = 'fdsfsfsdfsd 36.23.227.234 Paris,FR FKGNGH 2df2df5cdsss 12151281250 November 23d, 2014 November 23d, 2014 titlethere 6928699 dfgdfgdfg REWG50 US$50.00 fdsfddfseed 96.8.225.128 London,UK FDGSDS ASDGSDG22GDS 33583855464 January 30d, 2011 January 30d, 2011 titlethere 34576874 dsfasdg ASASDF41 US€0.00'; 
var regexp = /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/gi; 
var matches_array = str.match(regexp); 
console.log(matches_array); 

Который дает массив [ "36.23.227.234", "96.8.225.128"]

См https://stackoverflow.com/a/41610014 для всех вхождений строки и https://stackoverflow.com/a/32689475 для регулярного выражения для поиска IP-адресов.

+0

Спасибо, что хорошо работает с демонстрационной линией, которую я написал, но когда я пытаюсь жить с большими данными, у меня есть эта «Ошибка в строке 1: SyntaxError: Unexpected EOF» –

+0

Похож на ошибку из-за того, что данные на нескольких строках (см. http://stackoverflow.com/a/26325623/1619146). Наверное, я массировал ваши тестовые данные, чтобы удалить это. Вы можете добавить обратную косую черту (\) в каждую новую строку, чтобы сохранить все в одной строке. Это займет некоторую ручную работу, или, может быть, вы сможете сделать это, откуда вы выводите свои данные? – Asmund

+0

Спасибо, да, я найду способ добавить обратную косую черту, как, спасибо. –