@ 2022-07-21T14:14:13Z <?php
define('WAR_CODES', [
' ' => '', // World War 1
'A' => 'Allied Forces',
'AFG' => 'Australian - War on Terrorism',
'AGX' => 'Act of Grace',
'ALX' => 'Algeria - World War 2',
'ARG' => 'Argentina - Gulf War',
'ARX' => 'Argentina - World War 2',
'BAG' => 'Bahrain - Gulf War',
'BAL' => 'Peacekeeping - Balkans',
'BCG' => 'Bangladesh - Gulf War',
'BG' => 'Belgium - World War 1',
'BGG' => 'Belgium - Gulf War',
'BGK' => 'Belgium - Korean War',
'BGX' => 'Belgium - World War 2',
'BRX' => 'Brazil - World War 2',
'BUG' => 'Bulgaria - Gulf War',
'BUR' => 'Burma',
'BUX' => 'Bulgaria - World War 2',
'CAM' => 'Australian - Cambodian Service',
'CCG' => 'Canadian - Gulf War',
'CHX' => 'China - World War 2',
'CIX' => 'Chile - World War 2',
'CLK' => 'Colombia - Korean War',
'CN' => 'Canadian - World War 1',
'CNK' => 'Canadian - Korean War',
'CNS' => 'Canadian - Other Service',
'CNX' => 'Canadian - World War 2',
'CON' => 'Peacekeeping - Congo',
'CYP' => 'Peacekeeping - Cyprus',
'CZG' => 'Czechoslovakia - Gulf War',
'CZX' => 'Czechoslovakia - World War 2',
'DEG' => 'Denmark - Gulf War',
'DNK' => 'Denmark - Korean War',
'DNX' => 'Denmark - World War 2',
'EGG' => 'Egypt - Gulf War',
'EGX' => 'Egypt - World War 2',
'EGY' => 'Peacekeeping - Egypt',
'ESX' => 'Estonia - World War 2',
'ET' => 'Australian - East Timor Service',
'ETK' => 'Ethiopia - Korean War',
'ETX' => 'Ethiopia - World War 2',
'FIJ' => 'Fiji',
'FIX' => 'Finland - World War 2',
'FR' => 'France - World War 1',
'FRG' => 'France - Gulf War',
'FRK' => 'France - Korean War',
'FRX' => 'France - World War 2',
'FW' => 'Australian - World War 1',
'GHA' => 'Ghana',
'GR' => 'Greece - World War 1',
'GRE' => 'Peacekeeping - Greece',
'GRG' => 'Greece - Gulf War',
'GRK' => 'Greece - Korean War',
'GRX' => 'Greece - World War 2',
'GW' => 'Australian - Gulf War Service',
'HKS' => 'Hong Kong',
'HKX' => 'Hong Kong - World War 2',
'HLG' => 'Netherlands - Gulf War',
'HLK' => 'Netherlands - Korea',
'HLX' => 'Netherlands - World War 2',
'HUX' => 'Hungary - World War 2',
'IDA' => 'Peacekeeping - Indonesia',
'IND' => 'India',
'IQ' => 'Australian - War in Iraq',
'ISR' => 'Peacekeeping - Israel',
'IT' => 'Italy - World War 1',
'ITG' => 'Italy - Gulf War',
'ITK' => 'Italy - Korean War',
'ITX' => 'Italy - World War 2',
'IV' => 'Indigenous Veterans of PNG',
'JA' => 'Japan - World War 1',
'KM' => 'Australian - Korean/Malayan Service',
'KO' => 'South Korea - Korean War',
'KOS' => 'South Korea - Vietnam War',
'KSH' => 'Peacekeeping - Kashmir',
'KUG' => 'Kuwait - Gulf War',
'KYA' => 'Kenya',
'LAX' => 'Latvia - World War 2',
'LBX' => 'Liberia - World War 2',
'LXK' => 'Luxembourg - Korean War',
'MAL' => 'Malaysian Pensioners',
'MAR' => 'Allied Mariner- World War 2',
'MAU' => 'Mauritius',
'MLS' => 'Malaysia/Singapore',
'MO' => 'Montenegro - World War 1',
'MOG' => 'Morocco - Gulf War',
'MTX' => 'Malta - World War 2',
'MWI' => 'Malawi',
'N' => 'New Zealand - World War 1',
'NBA' => 'Australian - Namibian Service',
'NCG' => 'New Zealand - Gulf War',
'NF' => 'Newfoundland',
'NG' => 'New Guinea Civilians',
'NGR' => 'Nigeria',
'NIG' => 'Niger - Gulf War',
'NK' => 'New Zealand - Korean War',
'NRD' => 'Northern Zimbabwe (Rhodesia)',
'NSM' => 'New Zealand - Serving Member',
'NSS' => 'New Zealand Special O\'seas Service',
'NSW' => 'New Zealand Merchant Mariner - WW2',
'NWG' => 'Norway - Gulf War',
'NWK' => 'Norway - Korean War',
'NWX' => 'Norway - World War 2',
'NX' => 'New Zealand - World War 2',
'OMG' => 'Oman - Gulf War',
'P' => 'British - World War 1',
'PAD' => 'British Admiralty',
'PAG' => 'Pakistan - Gulf War',
'PAL' => 'Peacekeeping - Palestine',
'PAM' => 'British Air Ministry',
'PAX' => 'Panama - World War 2',
'PCA' => 'British Crown Agents',
'PCG' => 'British - Gulf War',
'PCR' => 'British Ministry O\'seas Development',
'PCV' => 'British Civilians',
'PHK' => 'Philippines - Korean War',
'PHS' => 'Philippines - Vietnam War',
'PHX' => 'Philippines - World War 2',
'PK' => 'British - Korean/Malayan Service',
'PLG' => 'Poland - Gulf War',
'PLX' => 'Poland - World War 2',
'PMS' => 'British Merchant Mariner - WW1',
'PO' => 'Portugal - World War 1',
'PSM' => 'British Serving Member',
'PSW' => 'British Merchant Mariner - WW2',
'PWO' => 'British War Office',
'PX' => 'British - World War 2',
'QAG' => 'Qatar - Gulf War',
'RD' => 'Zimbabwe (Rhodesia) - World War 1',
'RDX' => 'Zimbabwe (Rhodesia) - World War 2',
'RM' => 'Romania - World War 1',
'RU' => 'Russia - World War 1',
'RUG' => 'Russia - Gulf War',
'RUX' => 'Russia - World War 2',
'SA' => 'South Africa - World War 1',
'SAG' => 'Saudi Arabia - Gulf War',
'SAX' => 'South Africa - World War 2',
'SCG' => 'Sierra Leone - Gulf War',
'SE' => 'Serbia - World War 1',
'SEG' => 'Senegal - Gulf War',
'SIN' => 'Peacekeeping - Sinai',
'SL' => 'Sierra Leone',
'SM' => 'Australian - Serving Member',
'SO' => 'Australian - Somalian Service',
'SPG' => 'Spain - Gulf War',
'SR' => 'Australian - Malayan Emergency',
'SS' => 'Australian Special Overseas Service',
'SUD' => 'Sudan',
'SWK' => 'Sweden - Korean War',
'SWP' => 'Australian Merchant Mariner - WW2',
'SYG' => 'Syria - Gulf War',
'SYR' => 'Peacekeeping - Syria',
'SYX' => 'Syria - World War 2',
'THK' => 'Thailand - Korean War',
'THS' => 'Thailand - Vietnam War',
'TRG' => 'Turkey - Gulf War',
'TRK' => 'Turkey - Korean War',
'TZA' => 'Tanzania (Tanzanyika/Zanzibar)',
'UAG' => 'United Arab Emirates - Gulf War',
'UB' => 'Australian - Ubon 1965-68',
'URX' => 'Uruguay - World War 2',
'US' => 'United States - World War 1',
'USG' => 'United States - Gulf War',
'USK' => 'United States - Korean War',
'USS' => 'United States - Vietnam War',
'USX' => 'United States - World War 2',
'V' => 'Australian - Serving Member',
'VEX' => 'Venezuela - World War 2',
'VNS' => 'South Vietnam - Vietnam War',
'X' => 'Australian - World War 2',
'YEM' => 'Peacekeeping - Yemen',
'YGX' => 'Yugoslavia - World War 2',
'YU' => 'Australian - Yugoslavian Service',
'ZIM' => 'Peacekeeping - Zimbabwe',
]);
$groups = [1 => ''];
foreach (WAR_CODES as $code => $description) {
switch (strlen($code)) {
case 1:
$groups[1] .= $code;
break;
case 2:
$groups[2][$code[0]][] = $code[1];
break;
case 3:
$groups[3][$code[0]][$code[1]][] = $code[2];
break;
}
}
$groups[1] = "[{$groups[1]}]\d{6}";
foreach ($groups[2] as $first => &$seconds) {
$seconds = count($seconds) === 1
? "$first{$seconds[0]}"
: sprintf('%s[%s]', $first, implode($seconds));
}
$groups[2] = '(?:' . implode('|', $groups[2]) . ')\d{5}';
foreach ($groups[3] as $first => &$seconds) {
foreach ($seconds as $second => &$thirds) {
$thirds = count($thirds) === 1
? "$second{$thirds[0]}"
: sprintf('%s[%s]', $second, implode($thirds));
}
$seconds = count($seconds) === 1
? "$first$thirds"
: sprintf('%s(?:%s)', $first, implode('|', $seconds));
}
$groups[3] = '(?:' . implode('|', $groups[3]) . ')\d{4}';
ksort($groups);
echo implode("\n|", $groups);
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 8.4.12 0.011 0.010 24.11 8.4.11 0.007 0.003 22.55 8.4.10 0.013 0.008 17.59 8.4.9 0.011 0.009 20.75 8.4.8 0.011 0.009 17.95 8.4.7 0.011 0.009 17.85 8.4.6 0.011 0.012 18.88 8.4.5 0.009 0.008 18.73 8.4.4 0.013 0.006 19.46 8.4.3 0.017 0.003 20.54 8.4.2 0.011 0.007 17.89 8.4.1 0.009 0.009 22.11 8.3.25 0.011 0.008 18.97 8.3.24 0.006 0.005 17.42 8.3.23 0.008 0.008 16.72 8.3.22 0.011 0.009 21.22 8.3.21 0.010 0.005 18.26 8.3.20 0.006 0.004 16.75 8.3.19 0.013 0.007 17.20 8.3.18 0.009 0.011 18.86 8.3.17 0.009 0.009 20.87 8.3.16 0.012 0.006 17.12 8.3.15 0.009 0.009 16.82 8.3.14 0.004 0.004 17.15 8.3.13 0.000 0.008 18.50 8.3.12 0.016 0.000 19.11 8.3.11 0.010 0.010 20.94 8.3.10 0.006 0.003 24.06 8.3.9 0.000 0.008 26.77 8.3.8 0.003 0.006 16.75 8.3.7 0.009 0.006 16.61 8.3.6 0.010 0.013 16.75 8.3.5 0.007 0.014 20.30 8.3.4 0.008 0.008 21.98 8.3.3 0.016 0.006 18.71 8.3.2 0.004 0.004 24.18 8.3.1 0.008 0.000 24.66 8.3.0 0.004 0.004 26.16 8.2.29 0.010 0.011 22.15 8.2.28 0.012 0.007 18.50 8.2.27 0.006 0.009 16.58 8.2.26 0.000 0.018 16.89 8.2.25 0.000 0.008 16.89 8.2.24 0.005 0.003 18.84 8.2.23 0.009 0.003 22.58 8.2.22 0.008 0.000 37.54 8.2.21 0.004 0.004 26.77 8.2.20 0.006 0.003 16.88 8.2.19 0.006 0.009 16.58 8.2.18 0.010 0.010 25.92 8.2.17 0.004 0.011 19.22 8.2.16 0.014 0.000 22.96 8.2.15 0.000 0.009 25.66 8.2.14 0.004 0.004 24.66 8.2.13 0.004 0.004 26.16 8.2.12 0.004 0.004 20.57 8.2.11 0.006 0.003 22.25 8.2.10 0.005 0.005 18.03 8.2.9 0.006 0.003 19.50 8.2.8 0.003 0.005 17.97 8.2.7 0.004 0.004 17.50 8.2.6 0.000 0.008 17.93 8.2.5 0.006 0.003 18.07 8.2.4 0.005 0.003 20.01 8.2.3 0.008 0.000 18.19 8.2.2 0.003 0.006 20.45 8.2.1 0.000 0.008 18.27 8.2.0 0.004 0.004 19.30 8.1.33 0.005 0.004 22.25 8.1.32 0.010 0.008 17.66 8.1.31 0.000 0.009 16.27 8.1.30 0.011 0.008 18.31 8.1.29 0.006 0.003 18.88 8.1.28 0.012 0.003 25.92 8.1.27 0.006 0.003 20.39 8.1.26 0.006 0.003 26.35 8.1.25 0.004 0.004 28.09 8.1.24 0.003 0.007 19.02 8.1.23 0.008 0.004 19.15 8.1.22 0.000 0.008 17.91 8.1.21 0.000 0.008 18.77 8.1.20 0.003 0.006 17.48 8.1.19 0.000 0.009 17.35 8.1.18 0.008 0.000 18.10 8.1.17 0.008 0.000 18.77 8.1.16 0.000 0.007 18.91 8.1.15 0.003 0.006 18.68 8.1.14 0.000 0.008 17.45 8.1.13 0.003 0.003 18.98 8.1.12 0.004 0.004 17.45 8.1.11 0.000 0.007 17.38 8.1.10 0.000 0.007 17.56 8.1.9 0.003 0.006 17.47 8.1.8 0.003 0.005 17.55 8.1.7 0.005 0.003 17.59 8.1.6 0.000 0.007 17.71 8.1.5 0.002 0.005 17.63 8.1.4 0.004 0.004 17.43 8.1.3 0.000 0.008 17.75 8.1.2 0.007 0.000 17.63 8.1.1 0.005 0.008 17.07 8.1.0 0.006 0.003 17.59 8.0.30 0.000 0.008 18.77 8.0.29 0.004 0.004 17.18 8.0.28 0.004 0.004 18.51 8.0.27 0.000 0.007 16.82 8.0.26 0.006 0.000 18.53 8.0.25 0.007 0.000 17.00 8.0.24 0.006 0.003 17.11 8.0.23 0.004 0.004 16.91 8.0.22 0.003 0.006 16.81 8.0.21 0.006 0.004 16.66 8.0.20 0.011 0.003 16.21 8.0.19 0.007 0.006 16.89 8.0.18 0.012 0.004 16.84 8.0.17 0.007 0.008 16.63 8.0.16 0.013 0.000 16.69 8.0.15 0.005 0.005 16.39 8.0.14 0.009 0.005 16.61 8.0.13 0.009 0.006 16.21 8.0.12 0.012 0.000 16.39 8.0.11 0.010 0.003 16.63 8.0.10 0.007 0.008 16.68 8.0.9 0.013 0.000 16.46 8.0.8 0.010 0.002 16.65 8.0.7 0.013 0.000 16.71 8.0.6 0.009 0.006 16.33 8.0.5 0.004 0.009 16.54 8.0.3 0.011 0.003 16.53 8.0.2 0.012 0.004 16.41 8.0.1 0.006 0.009 16.72 7.4.33 0.007 0.000 15.55 7.4.32 0.007 0.000 16.48 7.4.30 0.012 0.005 16.52 7.4.29 0.009 0.003 16.37 7.4.28 0.005 0.011 16.09 7.4.27 0.012 0.003 16.47 7.4.26 0.017 0.000 16.67 7.4.25 0.013 0.000 16.52 7.4.24 0.005 0.009 16.39 7.4.23 0.008 0.008 16.26 7.4.22 0.007 0.002 16.34 7.4.21 0.011 0.004 16.13 7.4.20 0.005 0.010 16.62 7.4.19 0.013 0.003 16.48 7.4.18 0.010 0.003 16.47 7.4.16 0.006 0.010 16.26 7.4.15 0.009 0.002 16.39 7.4.14 0.003 0.009 16.34 7.4.13 0.011 0.003 16.08 7.4.12 0.013 0.000 15.80 7.4.11 0.006 0.006 16.24 7.4.10 0.009 0.000 16.34 7.4.9 0.007 0.004 15.76 7.4.8 0.005 0.005 16.27 7.4.7 0.010 0.000 16.44 7.4.6 0.008 0.006 16.16 7.4.5 0.010 0.003 16.34 7.4.4 0.013 0.000 16.34 7.4.3 0.008 0.004 16.01 7.4.2 0.005 0.006 16.14 7.4.1 0.009 0.003 16.24 7.4.0 0.013 0.000 16.25
preferences:dark mode live preview ace vim emacs key bindings
29.64 ms | 403 KiB | 5 Q