如何在第n次出现的单词之间获取子字符串。

时间:2016-02-18 09:50:49

标签: php

e.g

main_string ="我有一个芒果<'价格'> (abcdef)<&#;' / price'> 10,香蕉<' / price'> (ghijk)<&#;' / price'> 15以及<' / price'>的苹果(lmnop)<&#;' / price'> 20.因此花费的总金额为45卢比&#34 ;;

我想找到第三次出现之间的子字符串" <'价格'> "第三次出现" <' / price'> "

即output =(lmnop)

解决方案

注意:此处在主字符串中,标记未作为字符串出现,因此我保持引用,例如<' price'>和<' / price'>。只有从标记中删除引号后,解决方案才有效。

1 个答案:

答案 0 :(得分:1)

试试这个:

$string = 'I have a mango which <price>1111</price> 10, a banana which <price>3333</price> 15 and an apple which <price>5555</price> 20. So the total amount spent is Rs 45';
$pattern = '/\<price\>(.*?)\<\/price\>/';

$matches = array();

preg_match_all($pattern, $string, $matches);

var_dump($matches);

var_dump($matches[1][2]);

结果是:

array(2) {
  [0]=>
  array(3) {
    [0]=>
    string(19) "<price>1111</price>"
    [1]=>
    string(19) "<price>3333</price>"
    [2]=>
    string(19) "<price>5555</price>"
  }
  [1]=>
  array(3) {
    [0]=>
    string(4) "1111"
    [1]=>
    string(4) "3333"
    [2]=>
    string(4) "5555"
  }
}
string(4) "5555" // <-- that's what you want