protected function setup_groups( $key ) {
		// Prepare the function group regular expressions only once.
		$this->groups = $this->getGroups();

		if ( empty( $this->groups ) && empty( self::$unittest_groups ) ) {
			return false;
		}

		// Allow for adding extra unit tests.
		if ( ! empty( self::$unittest_groups ) ) {
			$this->groups = array_merge( $this->groups, self::$unittest_groups );
		}

		$all_items = array();
		foreach ( $this->groups as $groupName => $group ) {
			if ( empty( $group[ $key ] ) ) {
				unset( $this->groups[ $groupName ] );
			} else {
				$items       = array_map( array( $this, 'prepare_name_for_regex' ), $group[ $key ] );
				$all_items[] = $items;
				$items       = implode( '|', $items );

				$this->groups[ $groupName ]['regex'] = sprintf( $this->regex_pattern, $items );
			}
		}

		if ( empty( $this->groups ) ) {
			return false;
		}

		// Create one "super-regex" to allow for initial filtering.
		$all_items                = \call_user_func_array( 'array_merge', $all_items );
		$all_items                = implode( '|', array_unique( $all_items ) );
		$this->prelim_check_regex = sprintf( $this->regex_pattern, $all_items );

		return true;
	}
protected function setup_groups( $key ) {
		// Prepare the function group regular expressions only once.
		$this->groups = $this->getGroups();

		if ( empty( $this->groups ) && empty( self::$unittest_groups ) ) {
			return false;
		}

		// Allow for adding extra unit tests.
		if ( ! empty( self::$unittest_groups ) ) {
			$this->groups = array_merge( $this->groups, self::$unittest_groups );
		}

		$all_items = array();
		foreach ( $this->groups as $groupName => $group ) {
			if ( empty( $group[ $key ] ) ) {
				unset( $this->groups[ $groupName ] );
			} else {
				$items       = array_map( array( $this, 'prepare_name_for_regex' ), $group[ $key ] );
				$all_items[] = $items;
				$items       = implode( '|', $items );

				$this->groups[ $groupName ]['regex'] = sprintf( $this->regex_pattern, $items );
			}
		}

		if ( empty( $this->groups ) ) {
			return false;
		}

		// Create one "super-regex" to allow for initial filtering.
		$all_items                = \call_user_func_array( 'array_merge', $all_items );
		$all_items                = implode( '|', array_unique( $all_items ) );
		$this->prelim_check_regex = sprintf( $this->regex_pattern, $all_items );

		return true;
	}
protected function setup_groups ( $ key ) { // Prepare the function group regular expressions only once. $ this -> groups = $ this -> getGroups ( ) ; if ( empty ( $ this -> groups ) && empty ( self :: $ unittest_groups ) ) { return false ; } // Allow for adding extra unit tests. if ( ! empty ( self :: $ unittest_groups ) ) { $ this -> groups = array_merge ( $ this -> groups , self :: $ unittest_groups ) ; } $ all_items = array ( ) ; foreach ( $ this -> groups as $ groupName => $ group ) { if ( empty ( $ group [ $ key ] ) ) { unset ( $ this -> groups [ $ groupName ] ) ; } else { $ items = array_map ( array ( $ this , 'prepare_name_for_regex' ) , $ group [ $ key ] ) ; $ all_items [ ] = $ items ; $ items = implode ( '|' , $ items ) ; $ this -> groups [ $ groupName ] [ 'regex' ] = sprintf ( $ this -> regex_pattern , $ items ) ; } } if ( empty ( $ this -> groups ) ) { return false ; } // Create one "super-regex" to allow for initial filtering. $ all_items = \ call_user_func_array ( 'array_merge' , $ all_items ) ; $ all_items = implode ( '|' , array_unique ( $ all_items ) ) ; $ this -> prelim_check_regex = sprintf ( $ this -> regex_pattern , $ all_items ) ; return true ; }
Set up the regular expressions for each group.

@since 0.10.0

@param string $key The group array index key where the input for the regular expression can be found.
@return bool True if the groups were setup. False if not.
Set up the regular expressions for each group .