這是不工作我的出發正則表達式:開始的preg_match字符串「做」和後跟任意字符
'/^(DO)(?<cmd>.{1,6})$/'
表達式應該匹配任何字符串開頭的「做」,後弦「DO」必須至少爲1,最長6個字符。
我想到:
DO // NOT A MATCH
DO123 // MATCH
DOaaa123 // MATCH
DOaaa123b // NOT A MATCH
?<cmd>
是一個名爲子模式:比賽被存儲爲關聯數組。
這是不工作我的出發正則表達式:開始的preg_match字符串「做」和後跟任意字符
'/^(DO)(?<cmd>.{1,6})$/'
表達式應該匹配任何字符串開頭的「做」,後弦「DO」必須至少爲1,最長6個字符。
我想到:
DO // NOT A MATCH
DO123 // MATCH
DOaaa123 // MATCH
DOaaa123b // NOT A MATCH
?<cmd>
是一個名爲子模式:比賽被存儲爲關聯數組。
好像它一回的兼容性問題,雖然documentation changelog說:
5.2.2命名的子模式現在接受的語法和( '名'?)以及((?)? P)。以前版本只接受(?P)。
使用PHP 5.4.8,窗戶IIS
這工作得很好:
'/^(DO)(?P<cmd>.{1,6})$/'
爲什麼? ? trye ^(DO)(.{1,6})$
你嘗試過像「/^(DO)(.+){1,6}$/ 「; – shawndreck