微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在PHP中从字符串中找到单词的其余部分?

如何解决如何在PHP中从字符串中找到单词的其余部分?

| 假设我有一个页面要刮掉其中带有“ ice”的单词,我该如何轻松地做到这一点?我看到很多刮板将其分解为源代码,但是我不需要。我只需要一些可以搜索网页上纯文本的内容。 编辑:我基本上需要一些东西来搜索.jpeg并找到整个文件名。 (它是网站上的纯文本,没有隐藏在标签中)     

解决方法

符合以下条件的任何单词都是其中带有“ 0”的单词:
/(\\w*)ice(\\w*)/i
(请注意,
\\w
也会匹配
0-9
_
。以下结果可能会更好:give5 better) 更新 要匹配文件名(不得包含空格):
/\\S+\\.jpeg/i
例:
<?php
$str = \'Picture of me: 238484534.jpeg and someone else img-of-someone.jpeg here\';
$cnt = preg_match_all(\'/\\S+\\.jpeg/i\',$str,$matches);
print_r($matches);
    ,1.您是否也想像属性,文本名一样读取HTML标记中的单词? 2.还是只有网页的可见部分? for#1:解决方案很简单,并且已经在其他答案中提到。 对于#2: 使用PHP DOMDOCUMENT类,并且仅在innerHTML中提取和搜索。 文档在这里: http://php.net/manual/zh/class.domdocument.php 例如: PHP DOMDocument剥离HTML标记     ,为此需要一些正则表达式。在下面,我使用PCRE http://www.php.net/manual/en/ref.pcre.php和函数preg_match http://www.php.net/manual/en/function.preg-match-all.php
<?php

$html = <<<EOF
<html>
    <head>
        <title>Test</title>
    </head>
    <body>List of files:
        <ul>
            <li>test1.jpeg</li>
            <li>test2.jpeg</li>
        </ul>
    </body>
</html>
EOF;
$matches = array();
$count = preg_match_all(\"([0-9a-zA-Z_-]+\\.jpeg)\",$html,$matches);
if (count($matches) > 1) {
    for ($i = 1; $i < count($matches); $i++) {
        print \"Filename: {$matches[$i]}\\n\";
    }
}
?>
    ,尝试这个:
preg_match_all(\'/\\w*ice\\w*/\',\'abc icecream lice\',$matches);

print_r($matches);
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。