Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
RegexpUtils
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
1 / 1
 buildPattern
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace MediaWiki\Extension\AbuseFilter;
4
5/**
6 * @internal
7 */
8class RegexpUtils {
9    /**
10     * Given a raw regexp, make it PCRE-compliant
11     * (escape slashes, add delimiters and modifiers).
12     *
13     * @param string $rawRegexp
14     * @param bool $caseInsensitive
15     * @return string
16     */
17    public static function buildPattern( string $rawRegexp, bool $caseInsensitive = false ): string {
18        $needle = preg_replace( '!((\\\\\\\\)*)(\\\\)?/!', '$1\/', $rawRegexp );
19
20        return "/$needle/u" . ( $caseInsensitive ? 'i' : '' );
21    }
22}