正则表达式:用于确定有效 PHP 类属性名称的正则表达式?

Bri*_*acy 2 php regex oop

我正在使用 PHP 的魔法__set__get方法来访问类中的私有数组。该类的使用可以包括“设置”新属性以及使用现有属性。我想确保创建或请求的属性名称(即$myObj->FakeProperty)根据以下规则有效:

  1. 属性名称必须以字母或下划线 [A-z_] 开头
  2. 如果以下划线开头,则后面必须跟一个字母
  3. 只要满足前两条规则,名称就可以包含 [A-z0-9_] 中的任何一个

我当前的正则表达式并不能解决问题;根据我的测试值,_12总是会落空。

测试领​​域:

albert12
12Albert
_12
_Albert12
_12Albert
_____a_1
Run Code Online (Sandbox Code Playgroud)

正则表达式:

^(?=_*[A-z]+)[A-z0-9_]+$
Run Code Online (Sandbox Code Playgroud)

use*_*291 6

根据文档,以下内容将匹配任何有效的 php 标识符

/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/
Run Code Online (Sandbox Code Playgroud)