Php preg#u匹配字符串,以';DO';后跟任何字符

Php preg#u匹配字符串,以';DO';后跟任何字符,php,regex,Php,Regex,这是我的起始正则表达式,它不起作用: '/^(DO)(?<cmd>.{1,6})$/' ? 是命名子模式:匹配项存储为关联数组。为什么会有? trye^(DO)(.{1,6})$为什么会有? trye^(DO)(.{1,6})$似乎是一个后端兼容性问题,尽管 5.2.2命名子模式现在接受语法(?)和(?'name')以及(?p)。以前的版本只接受(?P) 使用PHP5.4.8、windows IIS 这很好: '/^(DO)(?P<cmd>.{1,6})$/' '

这是我的起始正则表达式,它不起作用:

'/^(DO)(?<cmd>.{1,6})$/'

是命名子模式:匹配项存储为关联数组。

为什么会有? trye
^(DO)(.{1,6})$
为什么会有?
trye
^(DO)(.{1,6})$

似乎是一个后端兼容性问题,尽管

5.2.2命名子模式现在接受语法(?)和(?'name')以及(?p)。以前的版本只接受(?P)

使用PHP5.4.8、windows IIS

这很好:

'/^(DO)(?P<cmd>.{1,6})$/'
'/^(DO)(P.{1,6})$/'

这似乎是一个后台兼容性问题,尽管

5.2.2命名子模式现在接受语法(?)和(?'name')以及(?p)。以前的版本只接受(?P)

使用PHP5.4.8、windows IIS

这很好:

'/^(DO)(?P<cmd>.{1,6})$/'
'/^(DO)(P.{1,6})$/'

您是否尝试过类似“/^(DO)(.+){1,6}$/”;您是否尝试过类似“/^(DO)(.+){1,6}$/”;
'/^(DO)(?P<cmd>.{1,6})$/'