0

これは、機能していない私の最初の正規表現です:

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

式は「DO」で始まる任意の文字列と一致する必要があります。「DO」の後の文字列の長さは、最小 1 文字、最大 6 文字である必要があります。

私が期待するもの:

 DO // NOT A MATCH
 DO123 // MATCH
 DOaaa123 // MATCH
 DOaaa123b // NOT A MATCH

?<cmd>

名前付きサブパターンです: 一致は連想配列として保存されます。

4

2 に答える 2

2

なんであるの??トライ^(DO)(.{1,6})$

于 2013-01-15T09:47:12.373 に答える
1

ドキュメントの変更ログには次のように書かれていますが、それは下位互換性の問題のようです。

5.2.2 名前付きサブパターンは、構文 (?) と (?'name') および (?P) を受け入れるようになりました。以前のバージョンは (?P) のみを受け入れました。

PHP 5.4.8、Windows IIS を使用

これはうまくいきます:

'/^(DO)(?P<cmd>.{1,6})$/'
于 2013-01-15T10:13:46.037 に答える