get_html_split_regex() – Retrieve the regular expression for an HTML element.

You appear to be a bot. Output may be restricted

Description

Retrieves the regular expression for an HTML element.

Usage

$string = get_html_split_regex();

Parameters

Returns

string The regular expression

Source

File name: wordpress/wp-includes/formatting.php
Lines:

1 to 48 of 48
function get_html_split_regex() {
  static $regex;

  if ( ! isset( $regex ) ) {
    // phpcs:disable Squiz.Strings.ConcatenationSpacing.PaddingFound -- don't remove regex indentation
    $comments =
      '!'             // Start of comment, after the <.
      . '(?:'         // Unroll the loop: Consume everything until --> is found.
      .     '-(?!->)' // Dash not followed by end of comment.
      .     '[^\-]*+' // Consume non-dashes.
      . ')*+'         // Loop possessively.
      . '(?:-->)?';   // End of comment. If not found, match all input.

    $cdata =
      '!\[CDATA\['    // Start of comment, after the <.
      . '[^\]]*+'     // Consume non-].
      . '(?:'         // Unroll the loop: Consume everything until ]]> is found.
      .     '](?!]>)' // One ] not followed by end of comment.
      .     '[^\]]*+' // Consume non-].
      . ')*+'         // Loop possessively.
      . '(?:]]>)?';   // End of comment. If not found, match all input.

    $escaped =
      '(?='             // Is the element escaped?
      .    '!--'
      . '|'
      .    '!\[CDATA\['
      . ')'
      . '(?(?=!-)'      // If yes, which type?
      .     $comments
      . '|'
      .     $cdata
      . ')';

    $regex =
      '/('                // Capture the entire match.
      .     '<'           // Find start of element.
      .     '(?'          // Conditional expression follows.
      .         $escaped  // Find end of escaped element.
      .     '|'           // ...else...
      .         '[^>]*>?' // Find end of normal element.
      .     ')'
      . ')/';
    // phpcs:enable
  }

  return $regex;
}
 

 View on GitHub View on Trac