用正则表达式匹配字符串

时间:2021-02-24 18:47:55
Channeltype: SIP
ObjectName: 6001
ChanObjectType: peer
IPaddress: -none-
IPport: 5060
Dynamic: no
Natsupport: no
VideoSupport: no
TextSupport: no
ACL: no
Status: Unmonitored
RealtimeDevice: no

用正则表达式怎样匹配其中ObjectName和Status,请高人帮看看.

16 个解决方案

#1


没人回答吗?

#2


高人在哪?帮忙看看

#3


怎么没人回答问题?

#4





$str=<<<text
Channeltype: SIP
ObjectName: 6001
ChanObjectType: peer
IPaddress: -none-
IPport: 5060
Dynamic: no
Natsupport: no
VideoSupport: no
TextSupport: no
ACL: no
Status: Unmonitored
RealtimeDevice: no
text;


preg_match_all('/.*ObjectName:\s(\w+)\s.*Status:\s(\w+)\s/is', $str, $mystring);
echo $mystring[1][0];
echo $mystring[2][0];


#5



$string=<<<EOD
Channeltype: SIP
ObjectName: 6001
ChanObjectType: peer
IPaddress: -none-
IPport: 5060
Dynamic: no
Natsupport: no
VideoSupport: no
TextSupport: no
ACL: no
Status: Unmonitored
RealtimeDevice: no
EOD;
//未经测试,自己调试,工作忙,偷个懒过来。
preg_match_all('/[ObjectName:|Status:][^\r\n]*/i',$strimg,$matches);

var_dump($matches);

#6


4楼的正则表达式好像不行啊!

#7


引用 6 楼 heroblues 的回复:
4楼的正则表达式好像不行啊!


朋友,我测试了的,除非我理解错了

打印出6001      Unmonitored两个结果。是连在一起,因为一起打印的

#8


那最后的那个is分别是什么意思?

#9


我在js里测试,返回是空值null
var num_array=data.match('/.*ObjectName:\s(\w+)\s.*Status:\s(\w+)\s/g');

#10


data.match(/ObjectName:\s*(\d+)\s*Status:\s*(\w+)\s?/g)
请高人看看这个正则表达式该怎么改,才能显示6001和Unmonitored

#11


你原来要 js 的正则啊??
上面的都是 PHP 的正则。

#12


请js高人给看看啊!

#13


高人出来看看啊!

#14


高人出来看看啊!

#15


水平有限,用了2次正则,呵呵...


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>new document</title>
<script type="text/javascript">
window.onload = function(){
var val = document.getElementById("txt").value;
var reg = /(ObjectName|Status):\s*(\w+)/img;
var ret = val.match(reg).join(",").replace(/\w+:\s*/g, "").split(",");
alert(ret);
};
</script>
</head>
<body>
<textarea id="txt">
Channeltype: SIP
ObjectName: 6001
ChanObjectType: peer
IPaddress: -none-
IPport: 5060
Dynamic: no
Natsupport: no
VideoSupport: no
TextSupport: no
ACL: no
Status: Unmonitored
RealtimeDevice: no
</textarea>
</body>
</html>

#16


<script type="text/javascript"> 
var test = "Channeltype: SIP\r\nObjectName: 6001\r\nChanObjectType: peer\r\nIPaddress: -none-\r\nIPport: 5060\r\nDynamic: no\r\nNatsupport: no\r\nVideoSupport: no\r\nTextSupport: no\r\nACL: no\r\nStatus: Unmonitored\r\nRealtimeDevice: no";
var reg = /(?:ObjectName|Status)[ :]*(\w+)/g;
var mts;
while (mts = reg.exec(test))
{
if (mts != null)
{
  document.write(mts[1]+",");
}
}
</script>

#1


没人回答吗?

#2


高人在哪?帮忙看看

#3


怎么没人回答问题?

#4





$str=<<<text
Channeltype: SIP
ObjectName: 6001
ChanObjectType: peer
IPaddress: -none-
IPport: 5060
Dynamic: no
Natsupport: no
VideoSupport: no
TextSupport: no
ACL: no
Status: Unmonitored
RealtimeDevice: no
text;


preg_match_all('/.*ObjectName:\s(\w+)\s.*Status:\s(\w+)\s/is', $str, $mystring);
echo $mystring[1][0];
echo $mystring[2][0];


#5



$string=<<<EOD
Channeltype: SIP
ObjectName: 6001
ChanObjectType: peer
IPaddress: -none-
IPport: 5060
Dynamic: no
Natsupport: no
VideoSupport: no
TextSupport: no
ACL: no
Status: Unmonitored
RealtimeDevice: no
EOD;
//未经测试,自己调试,工作忙,偷个懒过来。
preg_match_all('/[ObjectName:|Status:][^\r\n]*/i',$strimg,$matches);

var_dump($matches);

#6


4楼的正则表达式好像不行啊!

#7


引用 6 楼 heroblues 的回复:
4楼的正则表达式好像不行啊!


朋友,我测试了的,除非我理解错了

打印出6001      Unmonitored两个结果。是连在一起,因为一起打印的

#8


那最后的那个is分别是什么意思?

#9


我在js里测试,返回是空值null
var num_array=data.match('/.*ObjectName:\s(\w+)\s.*Status:\s(\w+)\s/g');

#10


data.match(/ObjectName:\s*(\d+)\s*Status:\s*(\w+)\s?/g)
请高人看看这个正则表达式该怎么改,才能显示6001和Unmonitored

#11


你原来要 js 的正则啊??
上面的都是 PHP 的正则。

#12


请js高人给看看啊!

#13


高人出来看看啊!

#14


高人出来看看啊!

#15


水平有限,用了2次正则,呵呵...


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>new document</title>
<script type="text/javascript">
window.onload = function(){
var val = document.getElementById("txt").value;
var reg = /(ObjectName|Status):\s*(\w+)/img;
var ret = val.match(reg).join(",").replace(/\w+:\s*/g, "").split(",");
alert(ret);
};
</script>
</head>
<body>
<textarea id="txt">
Channeltype: SIP
ObjectName: 6001
ChanObjectType: peer
IPaddress: -none-
IPport: 5060
Dynamic: no
Natsupport: no
VideoSupport: no
TextSupport: no
ACL: no
Status: Unmonitored
RealtimeDevice: no
</textarea>
</body>
</html>

#16


<script type="text/javascript"> 
var test = "Channeltype: SIP\r\nObjectName: 6001\r\nChanObjectType: peer\r\nIPaddress: -none-\r\nIPport: 5060\r\nDynamic: no\r\nNatsupport: no\r\nVideoSupport: no\r\nTextSupport: no\r\nACL: no\r\nStatus: Unmonitored\r\nRealtimeDevice: no";
var reg = /(?:ObjectName|Status)[ :]*(\w+)/g;
var mts;
while (mts = reg.exec(test))
{
if (mts != null)
{
  document.write(mts[1]+",");
}
}
</script>