解析带有名称和属性声明的大括号占位符

问题描述 投票:0回答:2

我需要解析这样的字符串:

"{data type="subject"}
在PHP中使用正则表达式。

我有这个图案:

$template = '/{([\w]+)\s([\w]+)="([\w]+)"}/';

但什么也没发生。

有人可以帮我吗?

php regex placeholder text-parsing curly-braces
2个回答
3
投票

一切看起来都很好。
您的图案:

<?php

$s = '{data type="subject"}';
$template = '/{([\w]+)\s([\w]+)="([\w]+)"}/';

preg_match($template, $s, $matches);
var_dump($matches);

结果是:

array(4) {
  [0] =>
  string(21) "{data type="subject"}"
  [1] =>
  string(4) "data"
  [2] =>
  string(4) "type"
  [3] =>
  string(7) "subject"
}

请显示您的完整示例。


1
投票

花括号必须转义。尝试这样的事情:

'/\{(\w+)\s(\w+)="(\w+)"\}/'

编辑:修改了一个小错误。我试过了,效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.