3v4l.org

run code in 300+ PHP versions simultaneously
<?php // https://www.ppaonline.com.au/wp-content/uploads/2019/05/DVA-number-format-factsheet.pdf // https://meteor.aihw.gov.au/content/339127 $DVAs = [ 'VBUG1234', // veteran 'QMO54321A', // dependent 'NOMG111', // veteran 'WX1111', // veteran 'NOPE666A', // invalid 'SCON3111Z', // dependent ]; // file number is 1-3 letters or a space for WW1 (war code) followed by upto 6 digits // file number has a max length of 7 $regex = <<<REGEX / ^ ([NVQWST]) (?| ([ ANPVX])(\d{1,6}) |( BG |CN |ET |F[RW] |G[RW] |I[QTV] |JA |K[MO] |MO |N[FGKX] |P[KOX] |R[DMU] |S[AELMORS] |U[BS] |YU )(\d{1,5}) |( (?:A(?:FG|GX|LX|R[GX]) |B(?:A[GL]|CG|G[GKX]|RX|U[GRX]) |C(?:AM|CG|HX|IX|LK|N[KSX]|ON|YP|Z[GX]) |D(?:EG|N[KX]) |E(?:G[GXY]|SX|T[KX]) |F(?:I[JX]|R[GKX]) |G(?:HA|R[EGKX]) |H(?:K[SX]|L[GKX]|UX) |I(?:DA|ND|SR|T[GKX]) |K(?:OS|SH|UG|YA) |L(?:AX|BX|XK) |M(?:A[LRU]|LS|OG|TX|WI) |N(?:BA|CG|GR|IG|RD|S[MSW]|W[GKX]) |OMG |P(?:A[DGLMX]|C[AGRV]|H[KSX]|L[GX]|MS|S[MW]|WO) |QAG |R(?:DX|U[GX]) |S(?:A[GX]|CG|EG|IN|PG|UD|W[KP]|Y[GRX]) |T(?:H[KS]|R[GK]|ZA) |U(?:AG|RX|S[GKSX]) |V(?:EX|NS) |Y(?:EM|GX) |ZIM ) )(\d{1,4}) ) ([A-Z]?) $ /x REGEX; foreach ($DVAs as $DVA) { var_export([ $DVA, (bool) preg_match($regex, $DVA, $m), $m, $m ? sprintf( '%s%s%0' . (7 - strlen($m[2])) . 's%s', $m[1], $m[2], $m[3], $m[4] ) : '' ]); echo "\n"; }
Output for git.master, git.master_jit, rfc.property-hooks
array ( 0 => 'VBUG1234', 1 => true, 2 => array ( 0 => 'VBUG1234', 1 => 'V', 2 => 'BUG', 3 => '1234', 4 => '', ), 3 => 'VBUG1234', ) array ( 0 => 'QMO54321A', 1 => true, 2 => array ( 0 => 'QMO54321A', 1 => 'Q', 2 => 'MO', 3 => '54321', 4 => 'A', ), 3 => 'QMO54321A', ) array ( 0 => 'NOMG111', 1 => true, 2 => array ( 0 => 'NOMG111', 1 => 'N', 2 => 'OMG', 3 => '111', 4 => '', ), 3 => 'NOMG0111', ) array ( 0 => 'WX1111', 1 => true, 2 => array ( 0 => 'WX1111', 1 => 'W', 2 => 'X', 3 => '1111', 4 => '', ), 3 => 'WX001111', ) array ( 0 => 'NOPE666A', 1 => false, 2 => array ( ), 3 => '', ) array ( 0 => 'SCON3111Z', 1 => true, 2 => array ( 0 => 'SCON3111Z', 1 => 'S', 2 => 'CON', 3 => '3111', 4 => 'Z', ), 3 => 'SCON3111Z', )

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
71.58 ms | 408 KiB | 5 Q