为了账号安全,请及时绑定邮箱和手机立即绑定

我需要 preg_match_all() 模式在方括号标签 PHP 中获取字符串

我需要 preg_match_all() 模式在方括号标签 PHP 中获取字符串

PHP
临摹微笑 2022-11-04 16:38:35
我想解析一个字符串以获取方括号标签内的值:[vc_column_text][/vc_column_text]我preg_match_all()在 PHP 中使用$string = '[vc_row][vc_column][/vc_column][/vc_row][vc_row][vc_column width="1/2"][vc_column_text css=".vc_custom_1576642149231{margin-bottom: 0px !important;}"]This is the string I want to fetch[/vc_column_text][/vc_column][/vc_row]`;我试过这个:preg_match_all("'[vc_column_text(.*?)](.*?)[/vc_column_text]'", $string, $matches);但这只会返回一个 2-3 个字符的数组:非常感谢您的帮助:)
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

如果你只想匹配句子,你可以使用第一个匹配,然后是除or[vc_column_text之外的任何字符,然后匹配结束[]]

然后匹配 0+ 次出现的空白字符并捕获 1 次或多次出现的任何字符,但组 1 中的空白除外。

\[vc_column_text[^][]*\]\s*(.+?)\[/vc_column_text]

解释

  • \[vc_column_text匹配[vc_column_text

  • [^][]*\]匹配[,然后出现 0+ 次除[or]和匹配之外的任何字符]

  • \s*匹配 0+ 个空格字符

  • (.+?)捕获组 1,匹配任何字符 1+ 次非贪婪

  • \[/vc_column_text]匹配[/vc_column_text]

正则表达式演示php演示

示例代码

$string = '[vc_row][vc_column][/vc_column][/vc_row][vc_row][vc_column width="1/2"][vc_column_text css=".vc_custom_1576642149231{margin-bottom: 0px !important;}"]This is the string I want to fetch[/vc_column_text][/vc_column][/vc_row]';

preg_match_all("~\[vc_column_text[^][]*\]\s*(.+?)\[/vc_column_text]~", $string, $matches);

print_r($matches[1]);

输出


Array

(

    [0] => This is the string I want to fetch

)


查看完整回答
反对 回复 2022-11-04
  • 1 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号