当前位置:网站首页>MySQL regexp: Regular Expression Query
MySQL regexp: Regular Expression Query
2022-07-05 01:26:00 【Know its black and accept its white】
Read the directory
- This paper
- REGEXP Matching lists commonly used in operators
- Query records starting with a specific character or string
- Query records ending with a specific character or string
- Use symbols “.” Replace any character in the string
- Use “*” and “+” To match multiple characters
- Matches the specified string
- Match any one of the specified strings
- Matches characters other than the specified characters
- Application example 1
This paper
MySQL Formal expressions in are often used to retrieve or replace text content that conforms to a pattern , Match the special string that meets the requirements in the text according to the specified matching pattern .
for example , Extract the phone number from a file , Find the repeated words in an article or replace the sensitive vocabulary entered by the user , Regular expressions can be used in these places .
Regular expressions are powerful and flexible , Commonly used for complex queries .
REGEXP Matching lists commonly used in operators
MySQL Use in REGEXP Keyword specifies the character matching pattern of the regular expression , The following table lists them REGEXP Matching lists commonly used in operators .
Options | explain | Example | Examples of matching values |
---|---|---|---|
^ | Match the start character of the text | '^b' Match with letters b start String | book、big、banana、 bike |
$ | Match the end character of the text | 'st$’ Match with st Ending word Fu string | test、resist、persist |
. | Match any single character | 'b.t’ Match any b and t There is a character between | bit、bat、but、bite |
* | Match zero or more words in front of it operator | 'f*n’ Matching character n There is Arbitrary characters f | fn、fan、faan、abcn |
+ | Match preceding characters 1 Times or times | 'ba+’ Match with b start , after At least one face follows a | ba、bay、bare、battle |
< character string > | Matches text containing the specified character | 'fa’ | fan、afa、faad |
[ Character set ] | Match any word in the character set operator | '[xz]' matching x perhaps z | dizzy、zebra、x-ray、 extra |
[^] | Match any characters that are not in brackets | '[^abc]’ Match any non package contain a、b or c String | desk、fox、f8ke |
character string {n,} | Match the previous string at least n Time | b{2} matching 2 One or more Of b | bbb、 bbbb、 bbbbbbb |
character string {n,m} | Match the previous string at least n Time , at most m Time | b{2,4} Match the least 2 individual , most 4 individual b | bbb、 bbbb |
Query records starting with a specific character or string
character "^"
Matches text that begins with a specific character or string .
【 example 1】
stay tb_departments In the table , Inquire about dept_name Fields are represented by letters “C”
The first record , Input SQL The statement and execution results are as follows .
mysql> SELECT * FROM tb_departments
-> WHERE dept_name REGEXP '^C';
+---------+-----------+-----------+-----------+
| dept_id | dept_name | dept_call | dept_type |
+---------+-----------+-----------+-----------+
| 1 | Computer | 11111 | A |
| 3 | Chinese | 33333 | B |
+---------+-----------+-----------+-----------+
2 rows in set (0.05 sec)
stay tb_departments There are two records in the table dept_name Field values are in letters C At the beginning , The returned results are 2 Bar record .
【 example 2】
stay tb_departments In the table , Inquire about dept_name Field to “Ch” The first record , Input SQL The statement and execution results are as follows .
mysql> SELECT * FROM tb_departments
-> WHERE dept_name REGEXP '^Ch';
+---------+-----------+-----------+-----------+
| dept_id | dept_name | dept_call | dept_type |
+---------+-----------+-----------+-----------+
| 3 | Chinese | 33333 | B |
+---------+-----------+-----------+-----------+
1 row in set (0.03 sec)
Only Chinese In order to “Ch” At the beginning , Therefore, only 1 Bar record .
Query records ending with a specific character or string
character “$”
Matches text that ends with a specific character or string .
【 example 3】
stay tb_departments In the table , Inquire about dept_name Fields are represented by letters “y” The record at the end , Input SQL The statement and execution results are as follows .
mysql> SELECT * FROM tb_departments
-> WHERE dept_name REGEXP 'y$';
+---------+-----------+-----------+-----------+
| dept_id | dept_name | dept_call | dept_type |
+---------+-----------+-----------+-----------+
| 4 | Economy | 44444 | B |
| 5 | History | 55555 | B |
+---------+-----------+-----------+-----------+
2 rows in set (0.00 sec)
stay tb_departments There are two records in the table dept_name Field values are in letters y At the end of the , The returned results are 2 Bar record .
【 example 4】
stay tb_departments In the table , Inquire about dept_name Field to “my” The record at the end , Input SQL The statement and execution results are as follows .
mysql> SELECT * FROM tb_departments
-> WHERE dept_name REGEXP 'my$';
+---------+-----------+-----------+-----------+
| dept_id | dept_name | dept_call | dept_type |
+---------+-----------+-----------+-----------+
| 4 | Economy | 44444 | B |
+---------+-----------+-----------+-----------+
1 row in set (0.00 sec)
Only Economy In order to “my” At the end of the , Therefore, only 1 Bar record .
Use symbols “.” Replace any character in the string
【 example 5】
stay tb_departments In the table , Inquire about dept_name The field value contains the letters “o” And letters “y”, And there is only one letter between two letters , Input SQL The statement and execution results are as follows .
mysql> SELECT * FROM tb_departments
-> WHERE dept_name REGEXP 'o.y';
+---------+-----------+-----------+-----------+
| dept_id | dept_name | dept_call | dept_type |
+---------+-----------+-----------+-----------+
| 4 | Economy | 44444 | B |
| 5 | History | 55555 | B |
+---------+-----------+-----------+-----------+
2 rows in set (0.00 sec)
In the query statement “o.y” Specify that there should be letters in the matching characters o and y, And there is a single character between the two letters , There is no limit to the position of the matching character and the total length of the query string , therefore Economy and History All meet the matching conditions .
Use “*” and “+” To match multiple characters
asterisk “*”
Match the preceding character any number of times , Include 0 Time . plus “+”
Match the preceding character at least once .
【 example 6】
stay tb_departments In the table , Inquire about dept_name The field value contains the letters “C”, And “C” The letters appear after them “h” The record of , Input SQL The statement and execution results are as follows .
mysql> SELECT * FROM tb_departments
-> WHERE dept_name REGEXP '^Ch*';
+---------+-----------+-----------+-----------+
| dept_id | dept_name | dept_call | dept_type |
+---------+-----------+-----------+-----------+
| 1 | Computer | 11111 | A |
| 3 | Chinese | 33333 | B |
+---------+-----------+-----------+-----------+
2 rows in set (0.00 sec)
asterisk “*”
Can match any number of characters ,Computer Middle letter C There is no letter after it h, But it also meets the matching conditions .
【 example 7】
stay tb_departments In the table , Inquire about dept_name The field value contains the letters “C”, And “C” The letters appear after them “h” At least one record , Input SQL The statement and execution results are as follows .
mysql> SELECT * FROM tb_departments
-> WHERE dept_name REGEXP '^Ch+';
+---------+-----------+-----------+-----------+
| dept_id | dept_name | dept_call | dept_type |
+---------+-----------+-----------+-----------+
| 3 | Chinese | 33333 | B |
+---------+-----------+-----------+-----------+
1 row in set (0.00 sec)
“h+”
Match the letter “h”
At least once , Only Chinese
Meet the matching conditions .
Matches the specified string
A regular expression can match a specified string , As long as this string is in the query text , To match multiple strings , Then a separator is used between multiple strings “|”
separate .
【 example 8】
stay tb_departments In the table , Inquire about dept_name The field value contains a string “in” The record of , Input SQL The statement and execution results are as follows .
mysql> SELECT * FROM tb_departments
-> WHERE dept_name REGEXP 'in';
+---------+-----------+-----------+-----------+
| dept_id | dept_name | dept_call | dept_type |
+---------+-----------+-----------+-----------+
| 3 | Chinese | 33333 | B |
+---------+-----------+-----------+-----------+
1 row in set (0.00 sec)
You can see ,dept_name Field Chinese Contains the string “in”, Meet the matching conditions .
【 example 9】
stay tb_departments In the table , Inquire about dept_name The field value contains a string “in” perhaps “on” The record of , Input SQL The statement and execution results are as follows .
mysql> SELECT * FROM tb_departments
-> WHERE dept_name REGEXP 'in|on';
+---------+-----------+-----------+-----------+
| dept_id | dept_name | dept_call | dept_type |
+---------+-----------+-----------+-----------+
| 3 | Chinese | 33333 | B |
| 4 | Economy | 44444 | B |
+---------+-----------+-----------+-----------+
2 rows in set (0.00 sec)
You can see ,dept_name Field Chinese Contains the string “in”,Economy Contains the string “on”, Meet the matching conditions .
Tips :LIKE Operator can also match the specified string , But with REGEXP Different ,LIKE If the matching string appears in the middle of the text , Can't find it , The corresponding line will not return . and REGEXP Match within text , If the matched string appears in the text ,REGEXP It will be found , The corresponding line will also be returned .
Match any one of the specified strings
square brackets “[]”
Specify a character set , Match only any of these characters , This is the text you are looking for .
【 example 10】
stay tb_departments In the table , Inquire about dept_name The field value contains the letters “o” perhaps “e” The record of , Input SQL The statement and execution results are as follows .
mysql> SELECT * FROM tb_departments
-> WHERE dept_name REGEXP '[io]';
+---------+-----------+-----------+-----------+
| dept_id | dept_name | dept_call | dept_type |
+---------+-----------+-----------+-----------+
| 1 | Computer | 11111 | A |
| 3 | Chinese | 33333 | B |
| 4 | Economy | 44444 | B |
| 5 | History | 55555 | B |
+---------+-----------+-----------+-----------+
4 rows in set (0.00 sec)
You can see from the query results that , Of all returned records dept_name The value of the field contains letters o perhaps e, Or both .
square brackets “[]”
You can also specify a set of values .
【 example 11】
stay tb_departments In the table , Inquire about dept_call The field value contains 1、2 perhaps 3 The record of , Input SQL The statement and execution results are as follows .
mysql> SELECT * FROM tb_departments
-> WHERE dept_call REGEXP '[123]';
+---------+-----------+-----------+-----------+
| dept_id | dept_name | dept_call | dept_type |
+---------+-----------+-----------+-----------+
| 1 | Computer | 11111 | A |
| 2 | Math | 22222 | A |
| 3 | Chinese | 33333 | B |
+---------+-----------+-----------+-----------+
3 rows in set (0.00 sec)
In the query results ,dept_call There is 1、2、3 One of the three numbers is the matching record field .
Match set “[123]” Or you could write it as “[1-3]”, That is, specify the set interval . for example ,“[a-z]” Indicates that the set interval is a~z The letter of ,“[0-9]” Indicates that the set interval is all numbers .
Matches characters other than the specified characters
“[^ Character set ]”
Matches any character that is not in the specified set .
【 example 12】
stay tb_departments In the table , Inquire about dept_name The field value contains the letters a~t Records of characters other than , Input SQL The statement and execution results are as follows .
mysql> SELECT * FROM tb_departments
-> WHERE dept_name REGEXP '[^a-t]';
+---------+-----------+-----------+-----------+
| dept_id | dept_name | dept_call | dept_type |
+---------+-----------+-----------+-----------+
| 1 | Computer | 11111 | A |
| 4 | Economy | 44444 | B |
| 5 | History | 55555 | B |
+---------+-----------+-----------+-----------+
3 rows in set (0.00 sec)
Returns... In the record dept_name The field value contains values other than the specified letters and numbers , Such as u、y etc. , These letters are not in a~t in , Meet the matching conditions .
Application example 1
Scenario introduction :
Precise query question_id contain 2 Of Record
Use regular
SELECT * FROM yexam_exam where question_ids REGEXP '(^|,)2(,|$)';
Query results :
边栏推荐
- [wave modeling 3] three dimensional random real wave modeling and wave generator modeling matlab simulation
- Basic operation of database and table ----- phased test II
- Compare whether two lists are equal
- La jeunesse sans rancune de Xi Murong
- 【FPGA教程案例10】基于Verilog的复数乘法器设计与实现
- SAP ui5 application development tutorial 107 - trial version of SAP ui5 overflow toolbar container control introduction
- Introduction to the gtid mode of MySQL master-slave replication
- LeetCode周赛 + AcWing周赛(T4/T3)分析对比
- 每日刷题记录 (十三)
- Database postragesql lock management
猜你喜欢
Actual combat simulation │ JWT login authentication
微信小程序;胡言乱语生成器
Yyds dry goods inventory kubernetes management business configuration methods? (08)
Great God developed the new H5 version of arXiv, saying goodbye to formula typography errors in one step, and mobile phones can also easily read literature
[untitled]
【LeetCode】88. Merge two ordered arrays
潘多拉 IOT 开发板学习(RT-Thread)—— 实验4 蜂鸣器+马达实验【按键外部中断】(学习笔记)
There is a new Post-00 exam king in the testing department. I really can't do it in my old age. I have
How to use words to describe breaking change in Spartacus UI of SAP e-commerce cloud
【海浪建模1】海浪建模的理论分析和matlab仿真
随机推荐
【大型电商项目开发】性能压测-优化-中间件对性能的影响-40
【FPGA教程案例9】基于vivado核的时钟管理器设计与实现
[wave modeling 2] three dimensional wave modeling and wave generator modeling matlab simulation
Compare whether two lists are equal
SAP ui5 application development tutorial 106 - how to improve the readability of SAP ui5 application routing URL trial version
Express routing, express middleware, using express write interface
Discrete mathematics: Main Normal Form (main disjunctive normal form, main conjunctive normal form)
[FPGA tutorial case 9] design and implementation of clock manager based on vivado core
Redis(1)之Redis简介
Pandora IOT development board learning (RT thread) - Experiment 4 buzzer + motor experiment [key external interrupt] (learning notes)
The perfect car for successful people: BMW X7! Superior performance, excellent comfort and safety
Database postragesql lock management
C basic knowledge review (Part 3 of 4)
无心剑英译席慕容《无怨的青春》
ROS command line tool
抓包整理外篇——————状态栏[ 四]
Basic operation of database and table ----- the concept of index
Classification of performance tests (learning summary)
各大主流编程语言性能PK,结果出乎意料
Introduction to redis (1)