你好我有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
答案 0 :(得分:0)
你可以尝试
^[^(]+(?=\()|(?<=[(,])\s*\K(?:<.*?>|.*?)(?=[,)])
应该拿起你需要的一切。 Demo.
它的作用是匹配字符串开头,逗号和括号之间的任何内容。所以它不会使用像anim(foo())
这样的东西。