0

我有以下饲料值

<item> 
 <description>&lt;strong&gt;Contact Number:&lt;/strong&gt; +91-00-000-000&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Rate:&lt;/strong&gt; xx.xx&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Fees and Comments:&lt;br /&gt;&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;$0 fees&lt;/li&gt;&lt;li&gt;Indicative Exchange Rate&lt;/li&gt;</description>
</item>

现在我想获得联系电话和费率以及费用和评论的单独价值。

我怎样才能得到这个值..任何一个????

4

4 回答 4

0

描述

您可能应该使用解析引擎阅读此内容。但是,如果您的用例如此简单,那么此正则表达式将:

  • 捕获每个字段
  • 允许字段以任何顺序出现

^(?=.*?Contact\sNumber:<\/strong>([^<]*))(?=.*?Rate:<\/strong>([^<]*))(?=.*?Fees\sand\sComments:.*?<li>([^<]*)<.*?<li>([^<]*)<)

在此处输入图像描述

现场示例:http ://www.rubular.com/r/j0aStij3L8

于 2013-07-11T04:54:43.460 回答
0

您还可以查看此模式:(使用命名组)

(?<key>[a-zA-Z\d\s]+)(?=\:).*?\>(?<value>[^<]+)

现场演示

于 2013-07-11T05:31:00.633 回答
0

这在某种程度上取决于您的提要的其余部分(或未来的提要)有哪些可靠的模式。它看起来不像 XML 解析器将在这里工作,因为该示例看起来不像格式良好的 XML。一个好的开始方法是使用explode 将字符串拆分为一个字符串数组,它看起来
是一个很好的拆分分隔符。所以这看起来像:

$split_feed = explode("<br />",$feed);

其中 $feed 是您在问题中的提要输入,而 $split_feed 将是您的输出数组。

然后,从该拆分提要中,您可以使用 strpos(或 stripos)来测试字符串中的键,以确定它引用的字段,并替换以从键/值字符串中获取值。

于 2013-07-11T04:58:17.483 回答
0
I think this is you want   
 <?php

    $value = '<strong>Contact Number:</strong> +91-00-000-000<br /><br />
              <strong>Rate:</strong> xx.xx<br /><br />
              <strong>Fees and Comments:<br /></strong><ul><li>$0 fees</li>
                <li>Indicative Exchange Rate</li>';

    $steps = explode('<br /><br />', $value);
    $step_2_for_contact_number = explode('</strong>', $steps[0]);

    $contact_number = $step_2_for_contact_number[1];

    $step_for_rate = explode('</strong>', $steps[1]);

    $rate = $step_for_rate[1];

    $feed_n_comment_s_1 = explode('</li>', $steps[2]);

    $feed_n_comment_s_2 = explode('<li>', $feed_n_comment_s_1[0]);

    $feed_n_comment = $feed_n_comment_s_2[1];

    echo $contact_number;
    echo "<br/>";
    echo $rate;
    echo "<br/>";
    echo $feed_n_comment;
    ?>
于 2013-07-11T04:59:45.900 回答