Table of Contents
PHP regular expression introductory tutorial [translated], regular expression introductory tutorial
Home Backend Development PHP Tutorial PHP regular expression introductory tutorial [translated], regular expression introductory tutorial_PHP tutorial

PHP regular expression introductory tutorial [translated], regular expression introductory tutorial_PHP tutorial

Jul 12, 2016 am 08:52 AM
regular expression

PHP regular expression introductory tutorial [translated], regular expression introductory tutorial

Mind map Click on the image below to see the specific content!

​ ​ Introduction ​ Regular expressions should be used frequently in development. Nowadays, many development languages ​​​​have regular expression applications, such as javascript, java, .net, php, etc. Today I will share my understanding of regular expressions with If you are nagging, please tell me if I am inappropriate! ​ Need-to-know terms – How much do you know about the following terms? ​ Δ delimiter Δ Character field Δ modifier Δ qualifier Δ caret Δ wildcard (forward preview, reverse preview) Δ back reference Δ Lazy matching Δ Comment Δ Zero character width ​ Positioning ​ When do we use regular expressions? It is not enough to use regular expressions for all character operations. PHP uses regular expressions in some aspects, which actually affects efficiency. When we encounter complex text data parsing, regular expressions are a better choice. ​ Advantages ​ Regular expressions can improve work efficiency when processing complex character operations, and also save your code to a certain extent. ​ Disadvantages ​ When we use regular expressions, complex regular expressions will increase the complexity of the code and make it difficult to understand. So sometimes we need to add comments inside regular expressions. ​ Common mode

​ ¤ Delimiter, usually "/" is used as the beginning and end of the delimiter, but "#" can also be used. When to use "#"? Usually when there are a lot of "/" characters in your string, because such characters need to be escaped during regular expressions, such as uri. The code using the "/" delimiter is as follows.
$regex = '/^http://([w.] )/([w] )/([w] ).html$/i'; $str = 'http://www.youku.com/show_page/id_ABCDEFG.html'; $matches = array();   if(preg_match($regex, $str, $matches)){     var_dump($matches); }   echo "n";

$matches[0] in preg_match will contain the string matching the entire pattern.

The code using the "#" delimiter is as follows. At this time, "/" will not be escaped!

$regex = '#^http://([w.] )/([w] )/([w] ).html$#i'; $str = 'http://www.youku.com/show_page/id_ABCDEFG.html'; $matches = array();   if(preg_match($regex, $str, $matches)){     var_dump($matches); }   echo "n";

¤ Modifier: used to change the behavior of regular expressions.

The last one we see in ('/^http://([w.] )/([w] )/([w] ).html/i') i" is the modifier, which means ignoring case, and another one we often use is "x" which means ignoring spaces.

Contribute code:

$regex = '/HELLO/'; $str = 'hello word'; $matches = array();   if(preg_match($regex, $str, $matches)){     echo 'No i:Valid Successful!',"n"; }   if(preg_match($regex.'i', $str, $matches)){     echo 'YES i:Valid Successful!',"n"; }

¤ Character field: [w] The part expanded with square brackets is the character field.

¤ Qualifier: such as [w]{3,5} or [w]* or [w]. The symbols after [w] all represent qualifiers. The specific meaning is now introduced.

{3,5} means 3 to 5 characters. {3,} is more than 3 characters, {,5} is up to 5 characters, and {3} is three characters.

* represents 0 to multiple

means 1 to more.

¤ caret

^:

& gt; placed in the character domain (such as: [^w]) indicate the negative (excluding meaning) - "reverse selection"

                                                                                                                                                                                            can be placed before the expression to start with the current character. (/^n/i, means starting with n).

Note, we often call "" "escape character". Used to escape some special symbols, such as ".", "/"

Wildcards (lookarounds): Assert the presence or absence of certain characters in certain strings! ​ There are two types of lookarounds: lookaheads (forward lookup ?=) and lookbehinds (reverse lookup?<=). > Format: Positive lookup: (?=) corresponding to (?!) means negative meaning Reverse pre-lookup: (?<=) The corresponding (? $regex = '/(?<=c)d(?=e)/'; /* d 前面紧跟c, d 后面紧跟e*/ $str = 'abcdefgk'; $matches = array(); if(preg_match($regex, $str, $matches)){ var_dump($matches); } echo "n";

Negative meaning:

$regex = '/(?<!c)d(?!e)/'; /* d 前面不紧跟c, d 后面不紧跟e*/ $str = 'abcdefgk'; $matches = array(); if(preg_match($regex, $str, $matches)){ var_dump($matches); } echo "n";

>Character width: zero Verify zero character codes
$regex = '/HE(?=L)LO/i'; $str = 'HELLO'; $matches = array();   if(preg_match($regex, $str, $matches)){     var_dump($matches); }   echo "n";

Cannot print the result!

$regex = '/HE(?=L)LLO/i'; $str = 'HELLO'; $matches = array();   if(preg_match($regex, $str, $matches)){     var_dump($matches); }   echo "n";

Can print out the results!

Explanation: (?=L) means HE is followed by an L character. However, (?=L) itself does not occupy a character and must be distinguished from (L), which itself occupies one character.

​ capture data ​ Groupings without specifying a type will be retrieved for later use. > indicates that the type refers to the wildcard character. Therefore, only those without question marks at the beginning of the parentheses can be captured.

> References within the same expression are called backreferences. > Calling format: number (such as 1).
$regex = '/^(Chuanshanjia)[ws!] 1$/';    $str = 'Chuanshanjia thank Chuanshanjia'; $matches = array();   if(preg_match($regex, $str, $matches)){     var_dump($matches); }   echo "n";

> Avoid capturing data Format:(?:pattern) Advantages: It will keep the number of effective back references to a minimum and the code will be clearer. ​ >Named capturing group Format: (?P) Calling method (?P=group name)
$regex = '/(?P<author>chuanshanjia)[s]Is[s](?P=author)/i'; $str = 'author:chuanshanjia Is chuanshanjia'; $matches = array();   if(preg_match($regex, $str, $matches)){     var_dump($matches); }   echo "n";

Run results

Lazy matching (remember: two operations will be performed, please see the principle part below)

Format: Qualifier?

Principle: "?": If there is a qualifier in front of it, the smallest data will be used. For example, "*" will take 0, and " " will take 1. If it is {3,5}, 3 will be taken.

Look at the following two codes first:

Code 1.

<?php $regex = '/heL*/i'; $str = 'heLLLLLLLLLLLLLLLL'; if(preg_match($regex, $str, $matches)){     var_dump($matches); }   echo "n";

Result 1.

Code 2

<?php $regex = '/heL*?/i'; $str = 'heLLLLLLLLLLLLLLLL'; if(preg_match($regex, $str, $matches)){     var_dump($matches); }   echo "n";

Result 2

Code 3, use " "

<?php $regex = '/heL ?/i'; $str = 'heLLLLLLLLLLLLLLLL'; if(preg_match($regex, $str, $matches)){     var_dump($matches); }   echo "n";

Result 3

Code 4, use {3,5}

<?php $regex = '/heL{3,10}?/i'; $str = 'heLLLLLLLLLLLLLLLL'; if(preg_match($regex, $str, $matches)){     var_dump($matches); }   echo "n";

Result 4

​ ​

Comments on regular expressions ​ Format: (?# comment content) Purpose: Mainly used for complex annotations ​ Contribution code: It is a regular expression used to connect to MYSQL database
$regex = '/     ^host=(?<!.)([d.] )(?!.)                 (?#主机地址) |     ([w!@#$%^&*()_ -] )                       (?#用户名) |     ([w!@#$%^&*()_ -] )                       (?#密码) (?!|)$/ix';   $str = 'host=192.168.10.221|root|123456'; $matches = array();   if(preg_match($regex, $str, $matches)){     var_dump($matches); }   echo "n";

​ special characters ​ ​
特殊字符 解释
* 0到多次
1到多次还可以写成{1,}
? 0或1次
. 匹配除换行符外的所有单个的字符
w [a-zA-Z0-9_]
s 空白字符(空格,换行符,回车符)[tnr]
d [0-9]

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1127374.htmlTechArticlePHP regular expression introductory tutorial [translated], click on the image below to view the regular expression introductory tutorial mind map Specific content! Introduction to regular expressions, which you should often use in development...
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 regular expression validation: number format detection PHP regular expression validation: number format detection Mar 21, 2024 am 09:45 AM

PHP regular expression verification: Number format detection When writing PHP programs, it is often necessary to verify the data entered by the user. One of the common verifications is to check whether the data conforms to the specified number format. In PHP, you can use regular expressions to achieve this kind of validation. This article will introduce how to use PHP regular expressions to verify number formats and provide specific code examples. First, let’s look at common number format validation requirements: Integers: only contain numbers 0-9, can start with a plus or minus sign, and do not contain decimal points. floating point

How to validate email address in Golang using regular expression? How to validate email address in Golang using regular expression? May 31, 2024 pm 01:04 PM

To validate email addresses in Golang using regular expressions, follow these steps: Use regexp.MustCompile to create a regular expression pattern that matches valid email address formats. Use the MatchString function to check whether a string matches a pattern. This pattern covers most valid email address formats, including: Local usernames can contain letters, numbers, and special characters: !.#$%&'*+/=?^_{|}~-`Domain names must contain at least One letter, followed by letters, numbers, or hyphens. The top-level domain (TLD) cannot be longer than 63 characters.

How to match timestamps using regular expressions in Go? How to match timestamps using regular expressions in Go? Jun 02, 2024 am 09:00 AM

In Go, you can use regular expressions to match timestamps: compile a regular expression string, such as the one used to match ISO8601 timestamps: ^\d{4}-\d{2}-\d{2}T \d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ . Use the regexp.MatchString function to check if a string matches a regular expression.

Master regular expressions and string processing in Go language Master regular expressions and string processing in Go language Nov 30, 2023 am 09:54 AM

As a modern programming language, Go language provides powerful regular expressions and string processing functions, allowing developers to process string data more efficiently. It is very important for developers to master regular expressions and string processing in Go language. This article will introduce in detail the basic concepts and usage of regular expressions in Go language, and how to use Go language to process strings. 1. Regular expressions Regular expressions are a tool used to describe string patterns. They can easily implement operations such as string matching, search, and replacement.

PHP regular expressions: exact matching and exclusion of fuzzy inclusions PHP regular expressions: exact matching and exclusion of fuzzy inclusions Feb 28, 2024 pm 01:03 PM

PHP Regular Expressions: Exact Matching and Exclusion Fuzzy inclusion regular expressions are a powerful text matching tool that can help programmers perform efficient search, replacement and filtering when processing text. In PHP, regular expressions are also widely used in string processing and data matching. This article will focus on how to perform exact matching and exclude fuzzy inclusion operations in PHP, and will illustrate it with specific code examples. Exact match Exact match means matching only strings that meet the exact condition, not any variations or extra words.

How to verify password using regular expression in Go? How to verify password using regular expression in Go? Jun 02, 2024 pm 07:31 PM

The method of using regular expressions to verify passwords in Go is as follows: Define a regular expression pattern that meets the minimum password requirements: at least 8 characters, including lowercase letters, uppercase letters, numbers, and special characters. Compile regular expression patterns using the MustCompile function from the regexp package. Use the MatchString method to test whether the input string matches a regular expression pattern.

What are the regular expression wildcards? What are the regular expression wildcards? Nov 17, 2023 pm 01:40 PM

Regular expression wildcards include ".", "*", "+", "?", "^", "$", "[]", "[^]", "[a-z]", "[A-Z] ","[0-9]","\d","\D","\w","\W","\s&quo

Chinese character filtering: PHP regular expression practice Chinese character filtering: PHP regular expression practice Mar 24, 2024 pm 04:48 PM

PHP is a widely used programming language, especially popular in the field of web development. In the process of web development, we often encounter the need to filter and verify text input by users, among which character filtering is a very important operation. This article will introduce how to use regular expressions in PHP to implement Chinese character filtering, and give specific code examples. First of all, we need to clarify that the Unicode range of Chinese characters is from u4e00 to u9fa5, that is, all Chinese characters are in this range.

See all articles