Heim >Backend-Entwicklung >PHP-Tutorial >php preg_mahch字符截取解决思路

php preg_mahch字符截取解决思路

WBOY
WBOYOriginal
2016-06-13 10:28:441061Durchsuche

php preg_mahch字符截取

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->$tt = "Event: Dial  Privilege: call,all  SubEvent: Begin  Channel: [email protected];2  Destination: SIP/601-00001bca  CallerIDNum: 07016317212  CallerIDName: rc07016317212  ConnectedLineNum: 0267  ConnectedLineName: 0267  UniqueID: 1339380988.50590  DestUniqueID: 1339380988.50591  Dialstring: 601";preg_match("/(CallerIDNum:\s+\d+)\s+.+(UniqueID:\s\d+\.\d+)/",$tt,$out, PREG_OFFSET_CAPTURE,3);

希望的结果是 
['CallerIDNum'] =〉"07016317212" ;
['CallerIDName'] =>"rc07016317212" ;
['ConnectedLineNum']=>"0267";
['ConnectedLineName']=>"0267";
['UniqueID']=>"1339380988.50590";
[DestUniqueID]=>"1339380988.50591";
。。。。。。。。。
类型这样,从那个字符串拆分一个名称对应一个值

------解决方案--------------------
PHP code
$tt = "Event: Dial  Privilege: call,all  SubEvent: Begin  Channel: [email protected];2  Destination: SIP/601-00001bca  CallerIDNum: 07016317212  CallerIDName: rc07016317212  ConnectedLineNum: 0267  ConnectedLineName: 0267  UniqueID: 1339380988.50590  DestUniqueID: 1339380988.50591  Dialstring: 601";preg_replace('/(\w+):\s+([^\s]+)/e','$ar[$1]="$2"',$tt);//quit();print_r($ar);<br><font color="#e78608">------解决方案--------------------</font><br>
PHP code
[User:root Time:13:15:35 Path:/home/liangdong/php]$ cat preg.php <?php $str = "Event: Dial  Privilege: call,all  SubEvent: Begin  Channel: [email&#160;protected];2  Destination: SIP/601-00001bca  CallerIDNum: 07016317212  CallerIDName: rc07016317212  ConnectedLineNum: 0267  ConnectedLineName: 0267  UniqueID: 1339380988.50590  DestUniqueID: 1339380988.50591  Dialstring: 601";$nmatches = preg_match_all('/(CallerIDNum|CallerIDName|ConnectedLineNum|ConnectedLineName|UniqueID|DestUniqueID|Dialstring): (\S+)/', $str, $matches);print_r($matches);?>[User:root Time:13:15:36 Path:/home/liangdong/php]$ php preg.php Array(    [0] => Array        (            [0] => CallerIDNum: 07016317212            [1] => CallerIDName: rc07016317212            [2] => ConnectedLineNum: 0267            [3] => ConnectedLineName: 0267            [4] => UniqueID: 1339380988.50590            [5] => DestUniqueID: 1339380988.50591            [6] => Dialstring: 601        )    [1] => Array        (            [0] => CallerIDNum            [1] => CallerIDName            [2] => ConnectedLineNum            [3] => ConnectedLineName            [4] => UniqueID            [5] => DestUniqueID            [6] => Dialstring        )    [2] => Array        (            [0] => 07016317212            [1] => rc07016317212            [2] => 0267            [3] => 0267            [4] => 1339380988.50590            [5] => 1339380988.50591            [6] => 601        ))<br><font color="#e78608">------解决方案--------------------</font><br>把我的\S+改成\S*即可。<div class="clear">
                 
              
              
        
            </div>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn