javascript多个正则表达式匹配
考虑到下面的字符串 [NeMo(产品)]10.10.100.100(EFA-B-3)[Brocade FC开关]传感器: 电源#1(SNMP自定义表)关闭(无此名称(SNMP错误# 2) ) 我尝试获取多个匹配项以提取以下值:javascript多个正则表达式匹配,javascript,regex,Javascript,Regex,考虑到下面的字符串 [NeMo(产品)]10.10.100.100(EFA-B-3)[Brocade FC开关]传感器: 电源#1(SNMP自定义表)关闭(无此名称(SNMP错误# 2) ) 我尝试获取多个匹配项以提取以下值: var system = "PROD"; var ip = "10.10.100.100"; var location = "EFA-B-3"; var device = "Brocade FC-Switch"; var sensor = "Sensor: Power S
var system = "PROD";
var ip = "10.10.100.100";
var location = "EFA-B-3";
var device = "Brocade FC-Switch";
var sensor = "Sensor: Power Supply #1";
var sensorArt = "SNMP Custom Table";
var sensorState = "Down";
var errorMsg = "No Such Name (SNMP error # 2)";
由于我是正则表达式的初学者,我试图定义一些“规则”:
这是我的第一场比赛(规则1)。不知何故,我没有声明正则表达式可以在括号之间查看。我遗漏了什么?由于无法定义分隔符,唯一的方法是匹配部件并分别捕获它们
/\(([^()]+)\)]\s*(.*?)\s*\(([^()]*)\)\s*\[([^\][]*)]\s*(.*?)\s*\(([^()]+)\)\s*(.*?)\s*\((.*)\)/
看
详细信息
-a\(
字符(
-第1组:除([^()]+)
和(
)
-\)]\s*
和0+空格)]
-第2组:除换行符以外的任何0+字符,尽可能少(.*)
-0+空格,\s*\(
(
-第3组:除([^()]*)
和(
以外的1个或多个字符)
-\)\s*\[
,0+空格,)
[
-第4组:除([^\][]*)
和[
]
-]\s*
和0+空格]
-第5组:除换行符以外的任何0+字符,尽可能少(.*)
-0+空格,\s*\(
(
-第6组:除([^()]+)
和(
以外的一个或多个字符)
-\)\s*
和0+空格)
-第7组:除换行符以外的任何0+字符,尽可能少(.*)
-0+空格和\s*\(
(
-第8组:除换行符以外的任何0+字符,尽可能多(.*)
-\)
char)
var s=“[NeMo(PROD)]10.10.100.100(EFA-B-3)[Brocade FC Switch]传感器:电源#1(SNMP自定义表)关闭(无此名称(SNMP错误#2));
让[\uU,系统,ip,位置1,设备,传感器,sensorArt,sensorState,errorMsg]=s.match(/\([^()]+)]\s*(.*)\s*([^()]*)\([^()]*)\s*[([^\]]]*)\s*([^()]+)\([^()]+)\)\s*(.*)\s*(.*)\s*(*)/;
console.log(`System=${System}\nIP=${ip}\nLocation=${location1}\nDevice=${device}\nSensor=${sensor}\nSensorArt=${sensorArt}\nSensorState=${sensorState}\nErrorMsg=${errorMsg}')
让[\uU,系统,ip,位置,设备,传感器,sensorArt,sensorState,errorMsg]=s.match(/\([^()]+)]\s*(.*)\s*([^()]*)\s*[([^\][*])\s*([^()]+)\s*([^()]+)\s*(.*)\s*(.*)\s*(.*)/)