这是我开始使用的正则表达式:
'/^(DO)(?<cmd>.{1,6})$/'
表达式应匹配以“DO”开头的任何字符串,“DO”后的字符串必须至少为1,最多为6个字符。
我的期望:
DO // NOT A MATCH
DO123 // MATCH
DOaaa123 // MATCH
DOaaa123b // NOT A MATCH
?<cmd>
是一个命名的子模式:匹配存储为关联数组。
答案 0 :(得分:2)
为什么会这样? ?
试试^(DO)(.{1,6})$
答案 1 :(得分:1)
5.2.2命名子模式现在接受语法(?)和(?'name')以及(?P)。以前的版本只接受(?P)。
使用PHP 5.4.8,Windows IIS
这很好用:
'/^(DO)(?P<cmd>.{1,6})$/'