Skip to content

Instantly share code, notes, and snippets.

@fjarrett
Last active July 14, 2017 07:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fjarrett/12477d7b9847d1c559bfac4c2b03d1f2 to your computer and use it in GitHub Desktop.
Save fjarrett/12477d7b9847d1c559bfac4c2b03d1f2 to your computer and use it in GitHub Desktop.
Match values of PHP constant definitions by type

The Regex

/define\(\s*[\'"]FOO[\'"]\s*,\s*(?:[\'"](.+)[\'"]|([\d]+)|([\d\.]+)|(true|false))\s*\)/gi

Purpose: To reference constant values from a PHP file (wp-config.php) that should not be included.
Author: Frankie Jarrett
Link: https://regex101.com/r/kBFIl5/

Group 1: Strings

Should match

define('FOO','bar');
define( 'FOO', 'bar' );
define(   'FOO',   'bar'   );
define('FOO', ' bar ');
define('FOO', 'bar "baz" qux');
define('FOO',"bar");
define( 'FOO', "bar" );
define(   'FOO',   "bar"   );
define('FOO', " bar ");
define('FOO', "bar 'baz' qux");

Group 2: Integers

Should match

define('FOO',1);
define( 'FOO', 1 );
define(   'FOO',   1   );
define('FOO',12345);
define( 'FOO', 12345 );
define(   'FOO',   12345   );

Should fail

define('FOO',123 45);
define( 'FOO', 123 45 );
define(   'FOO',   123 45   );

Group 3: Floats

Should match

define('FOO',1.00);
define( 'FOO', 1.00 );
define(   'FOO',   1.00   );

Should fail

define('FOO',1.a00);
define( 'FOO', 1.a00 );
define(   'FOO',   1.a00   );
define('FOO',1. 00);
define( 'FOO', 1. 00 );
define(   'FOO',   1. 00   );

Group 4: Booleans

Should match

define('FOO',true);
define( 'FOO', true );
define(   'FOO',   true   );
define('FOO',false);
define( 'FOO', false );
define(   'FOO',   false   );
define('FOO',TRUE);
define( 'FOO', TRUE );
define(   'FOO',   TRUE   );
define('FOO',FALSE);
define( 'FOO', FALSE );
define(   'FOO',   FALSE   );

Should fail

define('FOO',tr ue);
define( 'FOO', tr ue );
define(   'FOO',   tr ue   );
define('FOO',fal se);
define( 'FOO', fal se );
define(   'FOO',   fal se   );
define('FOO',TR UE);
define( 'FOO', TR UE );
define(   'FOO',   TR UE   );
define('FOO',FAL SE);
define( 'FOO', FAL SE );
define(   'FOO',   FAL SE   );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment