Home Backend Development PHP Tutorial Global regular expression matching and matching array elements in PHP (detailed examples)

Global regular expression matching and matching array elements in PHP (detailed examples)

Nov 01, 2021 am 11:20 AM
php regular expression

In the previous article, I brought you "The exciting regular expression basis of PHP (detailed illustration)", which briefly introduced some of the regular expressions. Basic knowledge, in this article we will continue to look at some common functions of regular expressions. I hope it will be helpful to everyone!

Global regular expression matching and matching array elements in PHP (detailed examples)

In the previous article, we introduced some basic definitions of regular expressions and the basic application of the preg_match() function, using regular expressions The main purpose is to achieve powerful functions through simple methods. In order to be simple, effective and powerful, the regular expression rules are complicated, and it is even more difficult to construct correct and effective regular expressions, so using only one preg_match() function is not enough. .

Regular expressions are an important and complex technology when processing text data. Some text editors also use regular expressions to implement high-level "search/replace" functions. If you want to implement more functions, you need to know more functions. Next, let's take a look at more function knowledge about regular expressions.

<strong><span style="font-size: 18px;">preg_match_all()</span></strong><strong><span style="font-size: 18px;"></span></strong>##Function

Before we only introduced the basic function of

preg_match() function, there is also a function in PHP that is very similar to the preg_match() function ——preg_match_all(), this function can search for all results in the string that can match the regular expression.

The syntax format of this function is as follows:

preg_match_all($pattern, $subject [, &$matches [, $flags = PREG_PATTERN_ORDER [, $offset = 0 ]]])
Copy after login

It should be noted that:


##$pattern

represents the pattern to be searched, and also It is a defined regular expression; $subject indicates the string to be searched; $matches indicates that the optional parameter is a multi-dimensional array used to store all matching results. The array is sorted by $flags Specify; $offset represents optional parameters, $offset is used to start searching from the specified position in the target string, and its unit is bytes. $flags represents optional parameters, which can be used in combination with the following tags,

  • ##PREG_PATTERN_ORDER

    <strong></strong>

    The results are sorted as $matches[0] saves all matches of the complete pattern, $matches[1] saves all matches of the first subgroup, and so on.

  • PREG_SET_ORDER

    <strong></strong>

    The results are sorted into $matches[0] including the first match All matches (including subgroups) obtained, $matches[1] is an array containing all matches (including subgroups) obtained by the second match, and so on.

  • PREG_OFFSET_CAPTURE

    <strong></strong>

    If this tag is passed, each found match is returned will increase its offset relative to the target string. Note that this will change each matching result string element in
  • $matches
so that it becomes a matching result string whose 0th element is the matching result string and the first element is the offset of the matching result string in the subject. Shift amount.

You cannot use PREG_PATTERN_ORDER

and

PREG_SET_ORDER at the same time. The preg_match_all() function can return the number of matches of $pattern (possibly 0), and return ## if an error occurs. #FALSE. Next, let’s look at the application of the preg_match_all() function through an example to match a string. The example is as follows: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>&lt;?php $subject = &quot;abcdefghijkdefabcedfdefxyzdef&quot;; $pattern_1 = &amp;#39;/(def)(abc)/&amp;#39;; $num_1 = preg_match_all($pattern_1, $subject, $matches_1,PREG_PATTERN_ORDER); echo &quot;&lt;pre class=&quot;brush:php;toolbar:false&quot;&gt;&quot;; var_dump($matches_1); var_dump($num_1); $pattern_2 = &amp;#39;/(def)(abc)/&amp;#39;; $num_2 = preg_match_all($pattern_2, $subject, $matches_2,PREG_OFFSET_CAPTURE, 3); var_dump($matches_2); var_dump($num_2); ?&gt;</pre><div class="contentsignin">Copy after login</div></div>Output result:

From the above example, we have completed matching a string through the preg_match_all() function. Global regular expression matching can be completed through the application of the preg_match_all() function.

Global regular expression matching and matching array elements in PHP (detailed examples)Then let’s take a look at how to detect array elements that match a given pattern. This is when the preg_grep() function is used.

preg_grep()

<strong><span style="max-width:90%"></span>Function</strong>Use regular expressions In addition to matching strings, you can also match elements in arrays. The preg_grep() function in PHP can search all elements in an array and return an array of all elements that match the regular expression. The syntax format of this function is as follows:

preg_grep($pattern, $input [, $flags = 0 ])
Copy after login
What needs to be noted is:

$pattern表示要搜索的模式,也就是定义好的正则表达式;$input表示要搜索的数组;$flags表示可选参数,可以设置为 PREG_GREP_INVERT,这时函数会返回数组中与给定模式 $pattern 不匹配的元素组成的数组。perg_grep() 函数将遍历 $input 数组中的每一个元素,让该元素与模式 $pattern 进行匹配,然后将匹配成功或者匹配失败的元素返回。

接下来,我们通过示例来看一下使用 perg_grep() 函数匹配数组中的元素,示例如下:

<?php
    $test_arr = array(
        &#39;PHP中文网&#39;,
        &#39;http://www.php.cn/&#39;,
        &#39;php教程&#39;,
        &#39;abcdefg&#39;
    );
    $preg = &#39;/^[a-z]/&#39;;
    $preg_arr_1 = preg_grep($preg, $test_arr);
    $preg_arr_2 = preg_grep($preg, $test_arr, PREG_GREP_INVERT);
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    var_dump($preg_arr_1);
    var_dump($preg_arr_2);
?>
Copy after login

输出结果:

Global regular expression matching and matching array elements in PHP (detailed examples)

上述示例便是通过preg_grep() 函数匹配数组中的元素。

大家如果感兴趣的话,可以点击《PHP视频教程》、《正则表达式手册》进行更多关于PHP和正则表达式知识的学习。

The above is the detailed content of Global regular expression matching and matching array elements in PHP (detailed examples). For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles