使用AppleScript/JavaScript在大型文本上提取IP
问题描述:
我试图选择一个大文本并从该文本中提取所有IP。 E.g使用AppleScript/JavaScript在大型文本上提取IP
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我猜可以做到这一点?
答
您可以使用正则表达式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://*.com/a/41610014和https://*.com/a/32689475为正则表达式找到IP地址。
谢谢,这似乎与我写的演示线很好,但是当我尝试在大数据的情况下,我有这种“线1上的错误:SyntaxError:意外的EOF” –
由于数据存在在多行上(请参阅http://*.com/a/26325623/1619146)。我想我会按照你的测试数据去除这个。 您可以将一个反斜杠(\)添加到每个新行以将所有内容保存在一个字符串中。这将需要一些手动工作,或者您可以从输出数据的位置进行操作。 – Asmund
谢谢,是的,我会找到一种方法来添加一些反斜杠,谢谢。 –