使用PCRE模式执行全局正则表达式匹配的PHP函数。
preg_match_all 适用于片段,但不适用于整个网页
我有一个正则表达式,可以处理一小部分代码,但在整个页面上运行它时,它只返回第一个匹配项。为什么? 我的问题与 preg_match 反向引用以查找结尾有关...
我试图找到字符串中出现在某些单词后面的数字,并将前导零放在数字前面。 示例: Apt 4, John Ave 应为 Apt 0004, John Ave D巷52座...
我试图找到字符串中出现在某些单词后面的数字,并将前导零放在数字前面。 例如。 Apt 4, John Ave 应为 Apt 0004, John Ave 52 座,巷道
我有一个巨大的文本,其中包含遵循模式的字符串: {文本1} {文本2} ... {文本10} “text”将保持不变,但后面的数字将始终递增。我...
我有一个巨大的文本,其中包含遵循模式的字符串: {文本1} {文本2} ... {文本10} “text”将保持不变,但后面的数字将始终递增。我无法预...
我从服务器获取字符串: 自动状态 简单.汽车 OK 简单.moto OK 授权.cars OK 授权.moto OK 我想通过列表来解析它并获得一个数组键(
我想验证我的输入字符串并从中提取不可预测数量的子字符串——使用一个正则表达式模式。 示例字符串: 位于 [chambre、美食、salle-de-bain、jardin...
如何使用preg_match_all获取<pre>标签内容?
我需要废弃标签内容中的网页。我正在使用 preg_match_all 函数,但它不起作用。 我的抓取网站 标签内容如下。 #... 我需要废弃 <pre> 标签内容中的网页。我正在使用 preg_match_all 功能,但它不起作用。 我的抓取网站<pre>标签内容如下。 <pre># Mon Jul 22 03:10:03 CDT 2013 99.46.177.18 99.27.119.169 99.254.168.132 99.245.96.210 99.245.29.38 99.240.245.97 99.239.100.211 <pre> PHP 文件 已更新 $data = file_get_contents('http://www.infiltrated.net/blacklisted'); preg_match_all ("/<pre>([^`]*?)<\/pre>/", $data, $matches); print_r($matches); exit; 我的 php 文件返回空数组。我知道我的 preg_match_all 功能有问题。 如何获取预标记内容。请指导我。 编辑问题 我可以运行@Pieter 脚本。但它的回报只有Array() 我的脚本如下。 <?php $url = 'http://www.infiltrated.net/blacklisted'; $data = new DOMDocument(); $data->loadHTML(file_get_contents($url)); $xpath = new DomXpath($data); $pre_tags = array(); foreach($xpath->query('//pre') as $node){ $pre_tags[] = $node->nodeValue; } print_r($pre_tags); exit; ?> 使用 PHP 函数循环 DOM。强烈建议不要对 HTML 标签使用正则表达式模式。 试试这个代码: $data = new DOMDocument(); $data->loadHTML(file_get_contents($url)); $xpath = new DomXpath($data); $pre_tags = array(); foreach($xpath->query('//pre') as $node){ $pre_tags[] = $node->nodeValue; } 或者尝试 PHP 简单 HTML DOM 解析器,请参阅:http://simplehtmldom.sourceforge.net/ 我终于明白了。此 http://www.infilterated.net/blacklisted 网址是从一个文本文件加载的。因此,页面源代码中仅显示 pre 标记。所以我正在使用这个方法。 $array = explode("\n", file_get_contents('http://www.infiltrated.net/blacklisted')); print_r($array); 终于迎来工作问候了。
休斯顿我有一个问题。我有这个 preg_match_all 响应是许多具有重复数字的数组(原始数据有这些重复项)。我需要消除重复的号码并转移到...
假设我有一个像这样的字符串 罗伯特支付了 5 欧元。 500,00 欧元由 Alberto Del Rio 支付。 我想提取以下输出: 大批( [0]=>5,00 欧元 [1]=>500,00 欧元 )
我有一个需要匹配的字符串,它可以有多种格式: 5=33 5=14,21 5=34,76,5 5=12,97|4=2 5=35,22|4=31,53,71 5=98,32|7=21,3|8=44,11 我需要等号之间出现的数字...
我尝试从德语格式的字符串中获取电话号码。但我没有让它完全运行。输入文本是一个完整的 HTML 页面,其中包含大量内容,而不仅仅是数字。 可能的格式: (06442) 3...
尝试使用 PHP preg_match_all() 查找正则表达式来处理该字符串: include='跟踪屁股\'y' 正则表达式应该能够处理单引号或双引号,但不能在转义时中断
字符串可能在大括号中包含非数字,需要将其删除。输入也可以是多行,例如: 输入: #(1437) #{19} (917) (1437) # {19} (1437) [1449] [2474] [2098] [1351] [508...
[AltaDefinizione]] 挑战者 STREAMING-ITA Completo。持续时间:140 分钟类型 : 动作、奇幻、电视电影。斯特尔:泰勒·波西、克里斯托·里德、霍兰·罗登、泰勒·霍奇林。导演:迈克·埃利奥...
我有一个链接列表(a 中还有一些 svg 图标 - 它使我的模式更加复杂,这就是我提到这一点的原因),我想抓住两个特定的链接。 所以,如果这是主题...
我正在尝试通过 preg_match_all() 将 data.txt 中的多行填充到 data.csv 中的单行或列。它需要位于单个数组中,因为我只需要唯一的数字(或任何其他选项......
我试图找到答案,但没有成功,请帮忙。 我正在尝试通过 preg_match 将 data.txt 中的多行填充到 data.csv 中的单行或列。它需要在一个单一的...
preg_match_all() 仅返回单行中的最后一个匹配项,但返回多行字符串中的所有匹配项[重复]
我尝试使用 preg_match_all() 函数查找文本中所有出现的子字符串: 这个 我尝试使用 preg_match_all() 函数查找文本中所有出现的子字符串: <?php $str = '<p>this <a href="https://api.slack.com/apps/" target="_blank">link</a> and <a href="https://www.google.com" target="_blank">link 2</a></p>'; $reg = '/<a.*href="([^"]+)"[^>]+>(.+)<\/a>/'; preg_match_all($reg, $str, $m); print_r($m); 但是上面的代码只返回最后一个链接:run PHP online 当我将源文本拆分为行时,相同的代码返回所有匹配项: <?php $str = '<p>this <a href="https://api.slack.com/apps/" target="_blank">link</a> and the <a href="https://www.google.com" target="_blank">link 2</a></p>'; $reg = '/<a.*href="([^"]+)"[^>]+>(.+)<\/a>/'; preg_match_all($reg, $str, $m); print_r($m); 这里是 PHP 沙箱 问题出在你的正则表达式上。您可以限制字符: /<a\s*href="([^"]+)"[^>]+>([^<]+)<\/a>/ 或者使用惰性匹配: /<a.*?href="([^"]+)"[^>]+>(.+?)<\/a>/
我想从网址获取元标签。如果存在数据属性值,则无法正确提取。如何更改正则表达式? HTML 代码 1. 我想从网址获取元标签。如果存在数据属性值,则无法正确提取。如何更改正则表达式? HTML 代码 1. <meta property="og:title" content="111"> 2. <meta data-one="true" property="og:description" content="222"> 3. <meta data-two="true" property="og:image" content="333"> 4. <meta data-three="true" data-another="true" property="og:url" content="444"> PHP 代码 preg_match_all('~<\s*meta\s*property="(og:[^"]+)"\s*content="([^"]*)~i', $html, $matches); 结果 Array( [0] => og:title ) 希望结果 Array( [0] => og:title, [1] => og:description, [2] => og:image, [3] => og:url ) 问题在于第二个和第三个\s*,它表示匹配零个或多个空格。但是,在第二种情况下,您想要匹配 \b.*\b、单词边界(meta 的结尾),然后是任何内容,然后是新的单词边界(property 的开头)。对于第三种情况,需要 \s.*\b,因为 " 不是单词边界,所以你的固定正则表达式是: preg_match_all('~<\s*meta\b.*\bproperty="(og:[^"]+)"\s.*\bcontent="([^"]*)~i', $html, $matches); 请参阅此处的示例。