正则表达式验证字符串是否是变量

时间:2015-06-01 19:03:57

标签: php regex

我目前正在开发一个小框架类型的项目。在此项目中,需要eval()。此eval字符串不是用户提交的,但我仍想验证该字符串是否为(包含)变量。

变量的类型可以是正常变量,类属性和超全局变量。我是正则表达式的新手,所以我将不胜感激。

只是为了澄清:字符串将作为示例包含类似'$_GET["something"]'的内容。

2 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

(\$[a-zA-Z_]\w*(\[(["'])\w+\3\])?|\$\{\w+\})

请参阅DEMO

注意:最好使用thisthis之类的库,而不是使用正则表达式解决方案。 (来自讨论)

答案 1 :(得分:1)

\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?:\[["']\w+["']\])?

DEMO

ps。:(扩展)PHP接受ASCII 228

参考:php variables