Php 减少正则表达式的包容性
我有一个正则表达式,我想摆脱它。它似乎包含太多了。这是我的密码Php 减少正则表达式的包容性,php,regex,preg-match-all,Php,Regex,Preg Match All,我有一个正则表达式,我想摆脱它。它似乎包含太多了。这是我的密码 preg_match_all('/<li class="has-activity"><a class="group-entity" href="(.*?)"><span class="activity-count">(.*)<\/span><span class="image"><img alt="(.*?)" src/i',$output,$matches);
preg_match_all('/<li class="has-activity"><a class="group-entity"
href="(.*?)"><span class="activity-count">(.*)<\/span><span
class="image"><img alt="(.*?)" src/i',$output,$matches);
preg\u match\u all('/(*))
我只想让它抓取(.*)中的东西,但它似乎想抓取更多
更多信息:
下面是一个我试图从中提取的示例。但这只是一个实体。(使用preg_match_all)
7.
我需要抓取的两个主要内容是组href(“/grp/home?gid=2813868&trk=my_groups-tile-grp”,在本例中为“/grp/home?gid=2813868&trk=my_groups-tile-grp”)和组名(alt标记之间的内容。”[Rated#1 in Marketing]在本例中为社交媒体营销组)
使用我更新的代码(.?*),它似乎很好地抓取了名称。但我无法正确抓取组的href。对于初学者来说,因为*
似乎与属性匹配,它们可以替换为[^]*
i、 e
这是精确的,不会匹配更多的元素和属性,也不会覆盖元素和属性,尽管(常规)xml/html
仅使用正则表达式解析并不容易
更新
html示例代码
尽量不要使用preg\u match\u all
,如果需要更精确的匹配,请使用xml解析器(如建议的)作为初学者,因为*
似乎与属性匹配,它们可以替换为[^”]*
i、 e
这是精确的,不会匹配更多的元素和属性,也不会覆盖元素和属性,尽管(常规)xml/html
仅使用正则表达式解析并不容易
更新
html示例代码
尽量不要使用preg\u match\u all
,如果需要更精确的匹配,请使用xml解析器(如建议的)作为初学者,因为*
似乎与属性匹配,它们可以替换为[^”]*
i、 e
这是精确的,不会匹配更多的元素和属性,也不会覆盖元素和属性,尽管(常规)xml/html
仅使用正则表达式解析并不容易
更新
html示例代码
尽量不要使用preg\u match\u all
,如果需要更精确的匹配,请使用xml解析器(如建议的)作为初学者,因为*
似乎与属性匹配,它们可以替换为[^”]*
i、 e
这是精确的,不会匹配更多的元素和属性,也不会覆盖元素和属性,尽管(常规)xml/html
仅使用正则表达式解析并不容易
更新
html示例代码
尽量不要使用preg\u match\u all
,如果需要更精确的匹配,请使用xml解析器(如建议的那样)preg\u match\u all(preg\u match\u all(preg\u match\u all(preg\u match\u all(请给出一些文本的例子,你需要提取什么,以及它是如何失败的?不要使用正则表达式来解析html,不要这样做。它永远不会工作,而且会有无数的问题。如果你想(.*)
充当(.*)
为什么不使用(.*)呢
?解析器会可靠得多。如果看不到您在上面运行的是什么,就很难说出它失败的原因。是的。我尝试使用(.*),但它仍然不起作用。使用(.*)时,请在示例xml中指定您需要提取的内容请给出一些文本示例以及您需要提取的内容以及它如何失败?不要使用正则表达式解析html,不要这样做。它永远不会工作,并且会有无数问题。如果您想让(.*)
充当(.*),请尝试使用php DOMDocument
为什么不使用(.*?)
?解析器会可靠得多。如果看不到您在运行什么,就很难说它失败的原因。是的。我尝试使用(.*),但它仍然不起作用。当使用(.*)时,请在示例xml中指定您需要提取的内容请给出一些文本示例以及您需要提取的内容以及它如何失败?不要使用正则表达式解析html,不要这样做。它永远不会工作,并且会有无数问题。如果您想让(.*)
充当(.*),请尝试使用php DOMDocument
为什么不使用(.*?)
?解析器会可靠得多。如果看不到您在运行什么,就很难说它失败的原因。是的。我尝试使用(.*),但它仍然不起作用。当使用(.*)时,请在示例xml中指定您需要提取的内容请给出一些文本示例以及您需要提取的内容以及它如何失败?不要使用正则表达式解析html,不要这样做。它永远不会工作,并且会有无数问题。如果您想让(.*)
充当(.*),请尝试使用php DOMDocument
为什么不使用(.*?)
?解析器会可靠得多。如果看不到您在运行什么,就很难说它失败的原因。是的。我尝试使用(.*),但它仍然不起作用。当使用(.*)时,它抓取请在示例xml中指定您需要提取的根本不起作用的内容。您能给出一些文本示例以及预期匹配的内容吗?我已经在上面做了此评论,以了解它是如何失败的。下面是我试图从中抓取内容的示例。 6用代码示例更新您的问题。您需要准确地提取什么?这根本不起作用。您能给出一些文本示例以及预期匹配的内容吗?我已经在上面做了此评论,以了解它是如何失败的。这里有一个我正试图从中获取的示例。 6用代码样本更新你的问题。你需要准确地提取什么?那根本不起作用。你能举一些例子吗
<li class="has-activity"><a class="group-entity" href="/grp/home?gid=2813868&trk=my_groups-tile-grp">
<span class="activity-count">7</span>
<span class="image"><img alt="[Rated #1 in Marketing] The Social Media Marketing Group" src
preg_match_all('/<li class="has-activity"><a class="group-entity"
href="([^"]*)"><span class="activity-count">(.*)<\/span><span
class="image"><img alt="([^"]*)"/i',$output,$matches);
preg_match_all('/<li class="has-activity"><a class="group-entity"
href="([^"]*)"><span class="activity-count">([^<]*)<\/span><span
class="image"><img alt="([^"]*)"/i',$output,$matches);
<li class="has-activity"><a class="group-entity" href="/grp/home?gid=2813868&trk=my_groups-tile-grp"><span class="activity-count">6</span><span class="image"><img alt="[Rated #1 in Marketing] The Social Media Marketing Group" src
preg_match_all('/<li.*?class="has-activity".*?href="([^"]*)".*?<img.*?alt="([^"]*)"/i',$output,$matches);
preg_match_all('<li class="has\-activity"><a class="group\-entity" href=(.*?)"><span class="activity\-count">([0-9]+)<\/span><span class="image"><img alt="(.*)" src/i',$output,$matches);