正则表达式从数据中获取特定字符串

时间:2014-07-22 11:46:46

标签: regex node.js

我有以下数据

List of devices attached
192.168.56.101:5555    device product:vbox86p model:Samsung_Galaxy_Note_2___4_3___API_18___720x1280 device:vbox86p
192.168.56.102:5555    device product:vbox86tp model:Google_Nexus_7___4_3___API_18___800x1280 device:vbox86tp

从这些数据我想搜索S amsung_Galaxy_Note_ 2并重新调整其对应的192.168.56.102:5555

如何使用正则表达式

2 个答案:

答案 0 :(得分:2)

最简单的方法是,你可以在多线模式下使用它:

^(\S+).*Samsung_Galaxy_Note_2

并从第1组中检索匹配。在the regex demo中,请参阅右侧窗格中的群组捕获。

在JS中:

var myregex = /^(\S+).*Samsung_Galaxy_Note_2/m;
var matchArray = myregex.exec(yourString);
if (matchArray != null) {
    thematch = matchArray[0];
}

<强>解释

  • ^锚点断言我们位于字符串的开头
  • (\S+)向第1组捕获任何非白空间字符的字符
  • .*匹配任何字符
  • Samsung_Galaxy_Note_2匹配文字字符

答案 1 :(得分:1)

没有任何捕获群组,而肯定前瞻

^\S+(?=.*?Samsung_Galaxy_Note_2)

DEMO