首页 > 后端开发 > php教程 > 区域内匹配的正则表达式应该怎么写?

区域内匹配的正则表达式应该怎么写?

WBOY
发布: 2016-07-06 13:54:12
原创
1283 人浏览过

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

<code>有一个$link="url",打开后代码如下:

 

    ......

     <div class="news_list">

            <ul>

             <li>

              <span>2016-06-06</span>

              <a href="/news!show.action?id=f435345c44e04ec3a5e6ccedca29e061">羊山新区2016年14条道路绿化工程招标公告</a>

              </li>

            <li>

              <span>2016-06-06</span>

              <a href="/news!show.action?id=ad4b065149d94704b3d295287f863b5a">平桥区明港镇井庄路口-垃圾处理场-何岗村南路口(K0+000-K4+300)公路改建工程施工招标公告</a>

              </li>

           <li>

              <span>2016-05-31</span>

              <a href="/news!show.action?id=c3b688ae2ec54fb0880a0f60f7a4f5f0">信阳市中心医院羊山分院人防工程监理招标公告</a>

              </li>

            <li>

              <span>2016-05-31</span>

              <a href="/news!show.action?id=2a7060f3519b40b3aa766dd53f2b00ad">信阳市儿童医院病房楼建设项目施工及监理项目招标公告</a>

              </li>

            </ul>

        </div>

        <!--分页-->

        <div class="page_num">

        ......

 

 

<pre class="brush:php;toolbar:false"><code>目标:获得<div class="news_list">......<div class="page_num">中href标签里的内容"/news!show.action?id=2a7060f3519b40b3aa766dd53f2b00ad"

 

我写的代码如下:

//获取链接中的内容

$htmlContent=file_get_contents("$link");

//获取链接

$num=preg_match_all("/<div.>.*?(href=\".*?\").*<div.>/is",$htmlContent,$array);

//打印数组

var_dump($array[1]);

 

目前卡顿的地方:在  //获取链接  处,子表达式只能获取一个结果,而且不是想要的href标签中的内容。

 

                             

                         

 

 

                                                                                                                         

                     <h2>回复内容:</h2>

                       

                                                             

<pre class="brush:php;toolbar:false"><code>有一个$link="url",打开后代码如下:

 

    ......

     <div class="news_list">

            <ul>

             <li>

              <span>2016-06-06</span>

              <a href="/news!show.action?id=f435345c44e04ec3a5e6ccedca29e061">羊山新区2016年14条道路绿化工程招标公告</a>

              </li>

            <li>

              <span>2016-06-06</span>

              <a href="/news!show.action?id=ad4b065149d94704b3d295287f863b5a">平桥区明港镇井庄路口-垃圾处理场-何岗村南路口(K0+000-K4+300)公路改建工程施工招标公告</a>

              </li>

           <li>

              <span>2016-05-31</span>

              <a href="/news!show.action?id=c3b688ae2ec54fb0880a0f60f7a4f5f0">信阳市中心医院羊山分院人防工程监理招标公告</a>

              </li>

            <li>

              <span>2016-05-31</span>

              <a href="/news!show.action?id=2a7060f3519b40b3aa766dd53f2b00ad">信阳市儿童医院病房楼建设项目施工及监理项目招标公告</a>

              </li>

            </ul>

        </div>

        <!--分页-->

        <div class="page_num">

        ......

 

 

<pre class="brush:php;toolbar:false"><code>目标:获得<div class="news_list">......<div class="page_num">中href标签里的内容"/news!show.action?id=2a7060f3519b40b3aa766dd53f2b00ad"

 

我写的代码如下:

//获取链接中的内容

$htmlContent=file_get_contents("$link");

//获取链接

$num=preg_match_all("/<div.>.*?(href=\".*?\").*<div.>/is",$htmlContent,$array);

//打印数组

var_dump($array[1]);

 

目前卡顿的地方:在  //获取链接  处,子表达式只能获取一个结果,而且不是想要的href标签中的内容。

 

                             

                         

            <p class="answer fmt" data-id="1020000005671716">

                                     

</p>

<p>环视应该可以满足你现在的需求</p>

<pre class="brush:php;toolbar:false"><code class="php">preg_match_all('/(?\d{4}-\d{2}-\d{2})(?:.*?href=\")(.*?)(?:\".*?)(?=)/is', $a, $matches);</code>

登录后复制

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

<code>array(2) {

  [0]=>

  array(4) {

    [0]=>

    string(152) "

              <a href="/news!show.action?id=f435345c44e04ec3a5e6ccedca29e061">羊山新区2016年14条道路绿化工程招标公告</a>

              "

    [1]=>

    string(218) "

              <a href="/news!show.action?id=ad4b065149d94704b3d295287f863b5a">平桥区明港镇井庄路口-垃圾处理场-何岗村南路口(K0+000-K4+300)公路改建工程施工招标公告</a>

              "

    [2]=>

    string(161) "

              <a href="/news!show.action?id=c3b688ae2ec54fb0880a0f60f7a4f5f0">信阳市中心医院羊山分院人防工程监理招标公告</a>

              "

    [3]=>

    string(173) "

              <a href="/news!show.action?id=2a7060f3519b40b3aa766dd53f2b00ad">信阳市儿童医院病房楼建设项目施工及监理项目招标公告</a>

              "

  }

  [1]=>

  array(4) {

    [0]=>

    string(53) "/news!show.action?id=f435345c44e04ec3a5e6ccedca29e061"

    [1]=>

    string(53) "/news!show.action?id=ad4b065149d94704b3d295287f863b5a"

    [2]=>

    string(53) "/news!show.action?id=c3b688ae2ec54fb0880a0f60f7a4f5f0"

    [3]=>

    string(53) "/news!show.action?id=2a7060f3519b40b3aa766dd53f2b00ad"

  }

}</code>

登录后复制

原因:只有一个match的结果当然子表达式也只有一个结果.

如果改成:

1

<code>$num = preg_match_all("/.*?(href=\".*?\").*?/is", $htmlContent, $array);</code>

登录后复制

有四个match结果就有4个匹配了..

相关标签:
来源:php.cn
上一篇:laravel 5.1 如何生成空的controller ? 下一篇:百度编辑器如何更改下拉框的字体选择
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
相关专题
更多>
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板