现在的位置: 首页 > 综合 > 正文

取子串的正则表达式 (php)

2013年06月18日 ⁄ 综合 ⁄ 共 849字 ⁄ 字号 评论关闭

一.问题:

有如下字符串:

"<str1>name1</str1><str2>name2</str2>"

用正则表达式如何取出"name1"和"name2"呢?

二.解答:

2.1:

<?php
  $str="<str1>name1</str1><str2>name2</str2>";
  preg_match_all("/<[a-z0-9]*>([^<|>]*)<\/[a-z0-9]*>/",$str,$matches);
  echo $matches[1][0];
  echo $matches[1][1];
?>

2.2

<?php

$str = "<str1>name1</str1><str2>name2</str2>";
preg_match_all('/>([^<]+)</U', $str, $matches);
print_r($matches[1]);
/**
输出结果:
Array ( [0] => name1 [1] => name2 )
*/
?>

2.3

<?php
  $str="<str1>name1</str1><str2>name2</str2>";
  preg_match_all("/<[a-z0-9]*>([^<|>]*)<\/[a-z0-9]*>/",$str,$matches);
  echo $matches[1][0];
  echo $matches[1][1];
?>

2.4

<?php
        $str="<str1>name1</str1><str2>name2</str2>";
    $preg="#<str1>(.*)</str1><str2>(.*)</str2>#";
    preg_match($preg,$str,$arr);
    echo $arr[1];
    echo $arr[2];
?>

三.链接:

php正则表达式在线测试网址:

http://www.spaweditor.com/scripts/regex/index.php点击打开链接

原文地址:

http://s.yanghao.org/program/viewdetail.php?i=211844点击打开链接

抱歉!评论已关闭.