有没有办法使用 preg 表达式来搜索字符串并放入数组中? PHP

发布于 2024-12-11 23:04:14 字数 496 浏览 0 评论 0原文

我一直在尝试使用 preg_split 但效果不是很好,这就是我使用它的方式:

$html_str = '<span class="spanClass" rel="rel span">Text Span</span>';

$arrTemp = preg_split('/\<span class=\"spanClass\" rel=\"(.+?)\"\>(.+?)\<\/span\>/', $html_str);

所以我会得到这 2 个 '(.+?)' 变量到一个数组(span rel 和 Text Span)

我可能没有以最好的方式来解决我的问题,但事实是我的字符串将有多个 与垃圾 html 混合,我需要将其分开仅数组中的 内容。还有更好的想法吗?

Ive been trying to use preg_split but it's not working very well, this is how I'm using it:

$html_str = '<span class="spanClass" rel="rel span">Text Span</span>';

$arrTemp = preg_split('/\<span class=\"spanClass\" rel=\"(.+?)\"\>(.+?)\<\/span\>/', $html_str);

So I would get this 2 '(.+?)' variables into an array(span rel and Text Span).

I'm probably not thinking about it in the best possible way to solve my problem, but the fact is that my string will have more than one <span> mixed with trash html and I need to separate only the <span> content in an array. Any better ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

话少情深 2024-12-18 23:04:14

首先 preg_split 是错误的函数,您实际上是从您似乎正在使用的正则表达式语法中理解 preg_match 。

正确的用法是:

$html = '<span class="spanClass" rel="foo bar">Text Span</span>';
preg_match("/<span.*rel=[\"']([^\"']+)[\"'][^>]*>([^<]+)<\/span>/", $html, &$A);
print_r($A);

这个输出:

Array
(
    [0] => <span class="spanClass" rel="foo bar">Text Span</span>
    [1] => foo bar
    [2] => Text Span
)

所以上面使用 preg_match; $A[0] 包含整行 $A[1] rel= 内容和 $A[2] 文本范围内容。

First of all preg_split is the wrong function, you really meant preg_match from the syntax of regex that you seem to be using.

Correct use would be:

$html = '<span class="spanClass" rel="foo bar">Text Span</span>';
preg_match("/<span.*rel=[\"']([^\"']+)[\"'][^>]*>([^<]+)<\/span>/", $html, &$A);
print_r($A);

This outputs:

Array
(
    [0] => <span class="spanClass" rel="foo bar">Text Span</span>
    [1] => foo bar
    [2] => Text Span
)

So above uses preg_match; $A[0] contains the entire line $A[1] the rel= stuff and $A[2] the Text Span stuff.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文