PHP preg_match_all 未按预期工作
PHP preg_match_all not working as expecteded
这是我的代码,
$msg = "{yellow:red} ERROR: {blue:light_grey}";
$pattern = "/{(.*)}/";
$a = preg_match_all($pattern, $msg, $regex);
我期待以下 2 场比赛:
{yellow:red}
{blue:light_grey}
但我的结果是:
Array
(
[0] => Array
(
[0] => {yellow:red} ERROR: {blue:light_grey}
)
[1] => Array
(
[0] => yellow:red} ERROR: {blue:light_grey
)
)
有什么问题吗?
我会将常规更改为:
{([^}]*)}
如果您还想包括 {} 那么
({[^}]*})
您想要的正则表达式应该是:({[^}]*})
.
$msg = "{yellow:red} ERROR: {blue:light_grey}";
$pattern = "({[^}]*})";
$a = preg_match_all($pattern, $msg, $regex);
(
- 括号捕获一组
{
- 匹配字符 { 字面意思(区分大小写)
[^
- 匹配列表中不存在的单个字符
*
- 在零次和无限次之间匹配,在这种情况下,给定字符之间的所有内容。在这种情况下:{ }
这是我的代码,
$msg = "{yellow:red} ERROR: {blue:light_grey}";
$pattern = "/{(.*)}/";
$a = preg_match_all($pattern, $msg, $regex);
我期待以下 2 场比赛:
{yellow:red}
{blue:light_grey}
但我的结果是:
Array
(
[0] => Array
(
[0] => {yellow:red} ERROR: {blue:light_grey}
)
[1] => Array
(
[0] => yellow:red} ERROR: {blue:light_grey
)
)
有什么问题吗?
我会将常规更改为:
{([^}]*)}
如果您还想包括 {} 那么
({[^}]*})
您想要的正则表达式应该是:({[^}]*})
.
$msg = "{yellow:red} ERROR: {blue:light_grey}";
$pattern = "({[^}]*})";
$a = preg_match_all($pattern, $msg, $regex);
(
- 括号捕获一组{
- 匹配字符 { 字面意思(区分大小写)[^
- 匹配列表中不存在的单个字符*
- 在零次和无限次之间匹配,在这种情况下,给定字符之间的所有内容。在这种情况下:{ }