这可能是一个愚蠢的错误,但我有一个正则表达式应该匹配什么
- 阿拉拉
- afkdsf[]
- afadf43fds["guyish"]
但不适用于以数字开头的字符串
这是代码
preg_match('~^[A-Za-z][A-Za-z0-9]*(\[(?P<array>"(?:.*(?:(?<!\\)(?>\\\\)*\").*|.*)+(?:(?<!\\)(?>\\\\)*"))\]|\[\]|)$~',trim($item[0]," \r"),$matches)
但是当我执行它时,我得到了错误Compilation failed: missing ) at offset 95
当我在这里执行它时它工作正常吗?
代码有什么问题?
更新
可读的正则表达式:
~
^
[A-Za-z]
[A-Za-z0-9]*
(
\[
(?P<array>
"
(?:
.*
(?:
(?<!\\)
(?>\\\\)*
\"
)
.*
|
.*
)+
(?:
(?<!\\)
(?>\\\\)*
"
)
)
\]
|
\[\]
|
)$
~x