preg-match-all 相关问题

使用PCRE模式执行全局正则表达式匹配的PHP函数。

如何使用 cURL 和 preg_match_all 在源列表中抓取多行

嘿,我正在尝试抓取网站上的特定内容,就像这样 嘿,我正在尝试抓取网站上的特定内容,就像这样 <td><a href="javascript:void(0)" class="rankRow" data-rankkey="25"> Averages </a> </td> <td class="page_speed_602217763"> 82.84 </td> </tr> 我试图获取数字 82,84,其中 page_speed_** 数字变化,并且与源列表的其余部分不同的常量是文本“平均值” 我尝试过使用 preg_match_all 但似乎无法搜索超过一行以及中间的任何内容。 我使用的代码如下 <?php $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $Player1Link); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $curlresult = curl_exec($curl); preg_match_all('!data-rankkey="25">Averages</a></td><td class="(\d.*)</tr>!', $curlresult, $matches); print_r($matches); $P1AvgHigh = $matches[0][3]; echo "<br>"; echo $P1AvgHigh; curl_close($curl); ?> 提前致谢 首先,您的类声明不完整,并且您错过了第二个 td 的内容...也许这是您的代码的不完整副本?您还需要考虑每个元素之间和内部的空白。 这是我的正则表达式,它看起来可以工作(但可能需要根据您的精确要求和内容中可能的值进行调整)... data-rankkey="25">[\s]*Averages[\s]*<\/a>[\s]*<\/td>[\s]*<td class="page_speed_([\d]*)">[\s]*([\d]*.[\d]*)[\s]*</td>[\s]*<\/tr> 我已经转义了正斜杠,这对你来说可能不需要。 供将来参考https://www.regexpal.com/是一个玩正则表达式的好工具

回答 1 投票 0

从多个 HTML 标签中提取文本

我正在尝试完成这项工作,但我不能: $str = "123"; $匹配=数组(); preg_match_all("(?<= 我正在尝试完成这项工作,但我做不到: $str = "<html>1</html><html>2</html><html>3</html>"; $matches = array(); preg_match_all("(?<=<html>)(.*?)(?=</html>)", $str, $matches); foreach ($matches as $d) { echo $d; } 我做错了什么?输出必须是: 123 这应该对你有用: $str = "<html>1</html><html>2</html><html>3</html>"; preg_match_all("~(?<=<html>).*?(?=</html>)~", $str, $matches); foreach ($matches[0] as $d) { echo $d; } 输出: 123 变化是: 在~函数模式中使用缺失的正则表达式分隔符preg_match_all 删除捕获组,因为您已经在使用前瞻和后视,因此整个匹配可以用于进一步处理 在 $matches[0] 循环中使用 foreach 而不是 $matches 在$matches调用之前不需要声明/初始化preg_match_all 您需要添加分隔符(我已经使用了!)并且您可以跳过前瞻/后视。只需围绕您想要的数字创建一个捕获组。没有其他的。 然后在第二个matches元素中查找具有各个值的数组。 例子: preg_match_all("!<html>(.*?)</html>!", $str, $matches); foreach ($matches[1] as $d) { echo $d; }

回答 2 投票 0

提取符合特定条件的“单词”

我有以下字符串: SEDCVBNT S800BG09 7GFHFGD6H 324235346 RHGF7U S8-00BG/09 7687678 和以下正则表达式: preg_match_all('/ (?=.+[0-9])(?=.+[A-Z])[A-Z0-9-\/]{4,20}/i', $string, $m. ..

回答 3 投票 0

如何使用 href url、数据属性和文本组来预匹配整个 <a> 标签

在给定的 html 内容中,我需要 preg_match_all 标签与 href url、文本和数据名称属性组。 我将分享我卡住的当前工作场所。谁能帮我...

回答 1 投票 0

将类似 Lisp 的字符串解析为标记和文字文本

使用 PHP v8 preg_match_all($Matches) 函数的“匹配”参数,我需要匹配文字文本和分隔标记的列表。 $x = preg_match_all($Regex, $Template, $Matches,

回答 1 投票 0

preg_match_all 中发生了什么模式错误?

我有一段代码(不是我写的)在尝试调用 pre_match_all 函数时出现错误: $pattern = "/([\w-:\*]*)(?:\#([\w-]+)|\.([\w-]+))?(?:\[@?( !?[\w-:]+)(?:([!...

回答 0 投票 0

preg_match_all 不工作或显示结果

{"popUp":false,"token":"NS2938f08ubjk765vhjJBKJB78vhjeec1_m1_7"} 这是 JSON 中的 curl 响应,我想从此 JSON 响应中提取令牌。 我用过preg_match ...

回答 0 投票 0

PHP preg_match_all 提取id和name,其中tag中的id可选

我有以下代码: 10 第一... 我有以下代码: <?php $html = '<div> <div class="block"> <div class="id">10</div> <div class="name">first element</div> </div> <div class="block"> <div class="name">second element</div> </div> <div class="block"> <div class="id">30</div> <div class="name">third element</div> </div> </div>'; preg_match_all('/<div class="block">[\s]+<div class="id">(.*?)<\/div>[\s]+<div class="name">(.*?)<\/div>[\s]+<\/div>/ms', $html, $matches); print_r($matches); 我想得到带有id和name的数组,但是第二个位置没有id,所以我的preg match跳过了这个。如何在不跳过的情况下生成数组并像这样打印某事 [ ... [id => 0 // or null, name => 'second element'] ...]?

回答 0 投票 0


如何在PHP中用小数点分离字符串和数字?

我有这样一个字符串值$str="1231B1lB1.1lS1iC1C2.5"; 我想用小数点分开字符串和数字。下面是当前的代码 preg_match_all("[a-zA-Z]+", $str, $matches); print_r($....)

回答 1 投票 -1

Regex:仅在斜线之间匹配路由参数,但在可选的斜杠之间匹配

所以我在这里有这个正则表达式:\ /?({[a-zA-Z_0-9] *})\ /?我希望它与这些匹配:#有效/ test3 / {id} / {test} / {id}#有效/ admin / {slug}#无效/ test3 {id} {test}#无效/ test / { id} / yyy / {dd} ...

回答 1 投票 0

是否可以从discogs.com列表中获取专辑插图img src?

我正在尝试使用preg_match或preg_match_all从https://www.discogs.com/Lady-Gaga-Chromatica/release/15386439获取封面图稿,到目前为止,我只能获得Discogs徽标和...

回答 1 投票 0

preg_match_all-用于查找字符串中完整URL的正则表达式

我花了4个多小时试图找到我的php代码的正则表达式,但是没有运气。我有一个带有html代码的字符串。它具有许多网址格式,例如:example.com http://example.com http:// www ....

回答 2 投票 4

php用is.gd api在字符串中缩短所有URL并将它们链接起来

如标题所述,我正在尝试使用is.gd api缩短字符串中的所有URL并链接它们。函数link_isgd($ text){$ regex ='@(https?://([-\ w \。] + [-\ w])+(:\ d +)?(/([[\ w / _ \。 #-〜] *(\?\ S +)?)?)?)@'...

回答 1 投票 0

用于自动图像优化的widthxheight正则表达式

我正在创建一个php脚本,以从https://gtmetrix.com/reports/example.com/a_unique_code拖动推荐,剥离图像并推荐图像的宽度和高度,然后优化我的图像...

回答 1 投票 0

preg_match_all仅替换第一次出现的@user php

我已创建此函数来检查上述@users函数user_links($ string,$ table_users,$ pdo){preg_match_all('/ @(\ w +)/',$ string,$ matches); // $ sql =“ SELECT ...

回答 1 投票 0

PHP / REGEX:在括号内获取一个字符串

这是一个非常简单的问题,但是我在任何地方都找不到解决方案。我尝试使用preg_match或preg_match_all从括号内获取一个字符串,但不带括号。到目前为止,...

回答 3 投票 7

Preg匹配返回空数组

我做了下面的预匹配,以获取包含频道,生活方式频道或电子竞技频道的href,但除正确的数组外,它还返回一个空数组。我想这里有...

回答 1 投票 0

PHP:查找数字-虚线子字符串并在修改后替换的方式是什么?

我有带数字-破折号子字符串的字符串。我想找到这些子字符串,并在进行一些修改后将其替换。例如,字符串类似于:这是字符串编号123-45-6789-0 ...

回答 1 投票 0

PHP(regex):从SQL查询中提取列名

我正在用PHP的正则表达式苦苦挣扎:我有许多SQL查询。现在,我想在这些查询中提取变量名(列名)。它应该返回一个数组(...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.