PHP正则表达式帮助

PHP正则表达式帮助,php,Php,我将在一个新项目中使用正则表达式, 我对它们没有太多经验,想知道一种将HTML转换为正则表达式的好方法 有人知道什么好的教程,或者发电机吗 目前,我需要将其转换为: <span class="code" id="code" title="DOESNT MATTER">IMPORTANT<img class="scissors" src="DOESNT MATTER" alt="DOESNT MATTER" /></span> 重要 谢谢 $text='IM

我将在一个新项目中使用正则表达式, 我对它们没有太多经验,想知道一种将HTML转换为正则表达式的好方法

有人知道什么好的教程,或者发电机吗

目前,我需要将其转换为:

<span class="code" id="code" title="DOESNT MATTER">IMPORTANT<img class="scissors" src="DOESNT MATTER" alt="DOESNT MATTER" /></span>
重要
谢谢

$text='IMPORTANT';
$text = '<span class="code" id="code" title="DOESNT MATTER">IMPORTANT<img class="scissors" src="DOESNT MATTER" alt="DOESNT MATTER" /></span>';
preg_match('|<span class="code" id="code" title="DOESNT MATTER">IMPORTANT<img class="scissors" src="DOESNT MATTER" alt="DOESNT MATTER" /></span>|', $text, $match);
preg|u match(“|重要,$text,$match);
例如,如果您不寻找指定的标题,则没有任何内容可“转换”

选择你要使用的重要

$text = '<span class="code" id="code" title="DOESNT MATTER">IMPORTANT<img class="scissors" src="DOESNT MATTER" alt="DOESNT MATTER" /></span>';
preg_match('|<span class="code" id="code" title="DOESNT MATTER">(.*?)<img class="scissors" src="DOESNT MATTER" alt="DOESNT MATTER" /></span>|', $text, $match);
echo $match[1]; //IMPORTANT
$text='IMPORTANT';
preg|u match(“|(.*?|)”,$text,$match);
echo$match[1]//重要的

如果您只想去掉一些值周围的所有html,您可以使用

编辑:将注释移动到答案中,因为它是复制/粘贴错误的

<?php
$html = '<span class="code" id="code" title="DOESNT MATTER">IMPORTANT<img class="scissors" src="DOESNT MATTER" alt="DOESNT MATTER" /></span>';
preg_match_all("/<span\s.*?class=\"code\"[^>]+>(.*?)<img\s.*?class=\"scissors\"[^>]+>/i", $html, $matches);
var_dump($matches);
?>

值得注意的是,正则表达式不是解析HTML的好方法。不过,如果你有一小块保证格式的HTML,我认为它们很好

请参阅以下伟大的StackOverflow线程:


RegEx+HTML=错误。使用HTML解析器。我正在修改它以使其符合我的需要,所以我想这可能是一个好方法。我如何选择“重要”字符?似乎只输出一个字符?是的,但我有一个很大的HTML文件,我正在寻找多个基本相同的行。我需要每个人的重要信息,而不是其他信息。那么你到底在寻找什么呢?如果您只是想匹配'IMPORTANT',那么
/IMPORTANT/
就可以了。到底是什么让“重要”变得重要?它是否像一个带有类代码的span标记,后面是要捕获的文本,后面是带有类剪刀的图像标记<代码>preg_match_all(“/]+>(*?)]+>/i”,$html,$matches);var_dump($matches)似乎什么也没找到?:/。。是的,我希望在span标记中输出文本。这就是我目前正在使用的:
code
preg\u match\u all(“/]+>(*?)+>/I”,$printable,$matches);foreach($matches as$match){echo($match[1]
;}
code