0

您好,我有 api 函数,它基本上是我数据库中的文本

这是我使用的功能

alpha(integer link, integer face, float alpha);
color(integer link, integer face, vector color, float alpha);
description(integer link, string description);
glow(integer link, integer face, glow);
name(integer link, string name)
position(integer link, vector position)
rotation(integer link, vector rotation)
texture(integer link, integer face, string texture_uuid, vector repeats, vector offsets, float rotation_in_radians)

基本上我想做的是运行一个正则表达式来返回每个数组,因为我尝试了很多次并且没有太多运气,例如在纹理中我需要选择我正在使用的 uuid 键

([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})

这适用于该字段,但由于我有其他字段,它似乎没有进入数组,因为我不确定如何运行可乘正则表达式

链接和面也可以是负值,因为我使用的是 (<[^>]*>|\w+),它在一定程度上有效,但不是所有的 api 函数

知道如何构建正则表达式来处理所有 api 函数类型,因为我需要像这样的数组

array(
[0] = function,
[1] = link
[2] = face
[3] = texture uuid
[4] = texture repeats
[5] = offset
[6] = rotation
)

这是使用纹理功能的示例我希望我解释得足够多,因为我在这里遇到困难并寻求帮助

这是我使用的示例

https://regex101.com/r/vO2gW1/3你看到它坏了,因为不要拿起 uuid

或者有没有一种方法可以使用正则表达式或其他方法将它们作为函数执行,并保持结构作为函数以返回数据的格式,我需要它来使用 PHP

4

1 回答 1

0

你可以试试

^[^(]+(?=\()|(?<=[(,])\s*\K(?:<.*?>|.*?)(?=[,)])

它应该可以满足您的所有需求。演示。

它的作用是匹配字符串开头、逗号和括号之间的任何内容。所以它不适用于anim(foo()).

于 2014-12-14T08:41:05.533 回答