Rumah pembangunan bahagian belakang tutorial php 正则表达式的作用是什么

正则表达式的作用是什么

Jun 13, 2016 am 11:45 AM
ungkapan biasa

正则表达式是对字符串操作的一种逻辑公式;作用:检索、替换那些符合某个模式(规则)的文本,可以通过一些设定的规则来匹配一些字符串,是一个强大的字符串匹配工具。

正则表达式的作用是什么

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式的作用

正则表达式可以用来检索、替换那些符合某个模式(规则)的文本;可以通过一些设定的规则来匹配一些字符串,是一个强大的字符串匹配工具。

正则表达式方法

基本语法,正则声明

js中,正则的声明有两种方式

1、直接量语法:

var reg = /d+/g/
Salin selepas log masuk

2、创建RegExp对象的语法

var reg = new RegExp("\\d+", "g");
Salin selepas log masuk

这两种声明方式其实还是有区别的,平时的话我比较喜欢第一种,方便一点,如果需要给正则表达式传递参数的话,那么只能用第二种创建RegExp的形式

格式:

var pattern = new RegExp('regexp','modifier');
Salin selepas log masuk
  • regexp: 匹配的模式,也就是上文指的正则规则。

  • modifier: 正则实例的修饰符,可选值有:

  • i : 表示区分大小写字母匹配。

  • m :表示多行匹配。

  • g : 表示全局匹配。

传参的形式如下:

我们用构造函数来生成正则表达式

var re = new RegExp("^\\d+$","gim");
Salin selepas log masuk

这里需要注意,反斜杠需要转义,所以,直接声明量中的语法为\d,这里需要为 \\d
那么,给它加变量,就和我们前面写的给字符串加变量一样了。

var v = "bl";
var re =new RegExp("^\\d+" + v + "$","gim"); // re为/^\d+bl$/gim
Salin selepas log masuk

支持正则的STRING对象方法

1、search 方法

作用: 该方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的字符串

基本语法: stringObject.search(regexp);

返回值: 该字符串中第一个与regexp对象相匹配的子串的起始位置。如果没有找到任何匹配的子串,则返回-1;

注意点: search()方法不执行全局匹配,它将忽略标志g,

var str = "hello world,hello world";
// 返回匹配到的第一个位置(使用的regexp对象检索)
console.log(str.search(/hello/)); // 0
// 没有全局的概念 总是返回匹配到的第一个位置
console.log(str.search(/hello/g)); //0
 
console.log(str.search(/world/)); // 6
 
// 如果没有检索到的话,则返回-1
console.log(str.search(/longen/)); // -1
 
// 我们检索的时候 可以忽略大小写来检索
var str2 = "Hello";
console.log(str2.search(/hello/i)); // 0
Salin selepas log masuk

2、match()方法

作用: 该方法用于在字符串内检索指定的值,或找到一个或者多个正则表达式的匹配。类似于indexOf()或者lastIndexOf();

基本语法: stringObject.match(searchValue) 或者stringObject.match(regexp)

返回值:

  存放匹配成功的数组; 它可以全局匹配模式,全局匹配的话,它返回的是一个数组。如果没有找到任何的一个匹配,那么它将返回的是null;

  返回的数组内有三个元素,第一个元素的存放的是匹配的文本,还有二个对象属性

  index属性表明的是匹配文本的起始字符在stringObject中的位置,input属性声明的是对stringObject对象的引用

var str = "hello world";
console.log(str.match("hello")); // ["hello", index: 0, input: "hello world"]
console.log(str.match("Helloy")); // null
console.log(str.match(/hello/)); // ["hello", index: 0, input: "hello world"]
// 全局匹配
var str2="1 plus 2 equal 3"
console.log(str2.match(/\d+/g)); //["1", "2", "3"]
Salin selepas log masuk

3、replace()方法

作用: 该方法用于在字符串中使用一些字符替换另一些字符,或者替换一个与正则表达式匹配的子字符串;

基本用法: stringObject.replace(regexp/substr,replacement);

返回值: 返回替换后的新字符串

注意: 字符串的stringObject的replace()方法执行的是查找和替换操作,替换的模式有2种,既可以是字符串,也可以是正则匹配模式,如果是正则匹配模式的话,那么它可以加修饰符g,代表全局替换,否则的话,它只替换第一个匹配的字符串;

replacement 既可以是字符串,也可以是函数,如果它是字符串的话,那么匹配的将与字符串替换,replacement中的$有具体的含义,如下:

  •   $1,$2,$3….$99 含义是:与regexp中的第1到第99个子表达式相匹配的文本。可以看下面的例子

  •   $& 的含义是:与RegExp相匹配的子字符串。

  •   lastMatch或RegExp[“$_”]的含义是:返回任何正则表达式搜索过程中的最后匹配的字符。

  •   lastParen或 RegExp[“$+”]的含义是:返回任何正则表达式查找过程中最后括号的子匹配。

  •   leftContext或RegExp[“$`”]的含义是:返回被查找的字符串从字符串开始的位置到最后匹配之前的位置之间的字符。

  •   rightContext或RegExp[“$’”]的含义是:返回被搜索的字符串中从最后一个匹配位置开始到字符串结尾之间的字符。

var str = "hello world";
// 替换字符串
var s1 = str.replace("hello","a");
console.log(s1);// a world
// 使用正则替换字符串
var s2 = str.replace(/hello/,"b");
console.log(s2); // b world
 
// 使用正则全局替换 字符串
var s3 = str.replace(/l/g,'');
console.log(s3); // heo word
 
// $1,$2 代表的是第一个和第二个子表达式相匹配的文本
// 子表达式需要使用小括号括起来,代表的含义是分组
var name = "longen,yunxi";
var s4 = name.replace(/(\w+)\s*,\s*(\w+)/,"$2 $1");
console.log(s4); // "yunxi,longen"
 
var str = '123-mm';
var strReg = str.replace(/(\d+)-([A-Za-z]+)/g,'$2');
console.log(strReg)//mm 上面那段$2这个就是表示正则第二组个匹配到的内容,也就是说$1,$2.. 表示的是第几个括号匹配到的内容
 
// $& 是与RegExp相匹配的子字符串
var name = "hello I am a chinese people";
var regexp = /am/g;
if(regexp.test(name)) {
//返回正则表达式匹配项的字符串
console.log(RegExp['$&']); // am
 
//返回被搜索的字符串中从最后一个匹配位置开始到字符串结尾之间的字符。
console.log(RegExp["$'"]); // a chinese people
 
//返回被查找的字符串从字符串开始的位置到最后匹配之前的位置之间的字符。
console.log(RegExp['$`']); // hello I
 
// 返回任何正则表达式查找过程中最后括号的子匹配。
console.log(RegExp['$+']); // 空字符串
 
//返回任何正则表达式搜索过程中的最后匹配的字符。
console.log(RegExp['$_']); // hello I am a chinese people
}
 
// replace 第二个参数也可以是一个function 函数
var name2 = "123sdasadsr44565dffghg987gff33234";
name2.replace(/\d+/g,function(v){
console.log(v);
// 第一次打印123
// 第二次打印44565
// 第三次打印987
// 第四次打印 33234
});
Salin selepas log masuk

REGEXP对象方法

test()方法

作用: 该方法用于检测一个字符串是否匹配某个模式;

基本语法: RegExpObject.test(str);

返回: 返回true,否则返回false;

var str = "longen and yunxi";
console.log(/longen/.test(str)); // true
console.log(/longlong/.test(str)); //false
 
// 或者创建RegExp对象模式
var regexp = new RegExp("longen");
console.log(regexp.test(str)); // true
Salin selepas log masuk

exec()方法

作用: 该方法用于检索字符串中的正则表达式的匹配

基本语法: RegExpObject.exec(string)

返回值: 返回一个数组,存放匹配的结果,如果未找到匹配,则返回值为null;

注意点: 该返回的数组的第一个元素是与正则表达式相匹配的文本

该方法还返回2个属性,index属性声明的是匹配文本的第一个字符的位置;input属性则存放的是被检索的字符串string;该方法如果不是全局的话,返回的数组与match()方法返回的数组是相同的。

var str = "longen and yunxi";
console.log(/longen/.exec(str));
// 打印 ["longen", index: 0, input: "longen and yunxi"]
 
// 假如没有找到的话,则返回null
console.log(/wo/.exec(str)); // null
Salin selepas log masuk

更多相关知识,请访问 PHP中文网!!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pengesahan ungkapan biasa PHP: pengesanan format nombor Pengesahan ungkapan biasa PHP: pengesanan format nombor Mar 21, 2024 am 09:45 AM

Pengesahan ungkapan biasa PHP: Pengesanan format nombor Semasa menulis program PHP, selalunya perlu untuk mengesahkan data yang dimasukkan oleh pengguna Salah satu pengesahan biasa adalah untuk memeriksa sama ada data mematuhi format nombor yang ditentukan. Dalam PHP, anda boleh menggunakan ungkapan biasa untuk mencapai pengesahan jenis ini. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan format nombor dan memberikan contoh kod khusus. Mula-mula, mari kita lihat keperluan pengesahan format nombor biasa: Integer: hanya mengandungi nombor 0-9, boleh bermula dengan tanda tambah atau tolak dan tidak mengandungi titik perpuluhan. titik terapung

Bagaimana untuk mengesahkan alamat e-mel di Golang menggunakan ungkapan biasa? Bagaimana untuk mengesahkan alamat e-mel di Golang menggunakan ungkapan biasa? May 31, 2024 pm 01:04 PM

Untuk mengesahkan alamat e-mel di Golang menggunakan ungkapan biasa, ikut langkah berikut: Gunakan regexp.MustCompile untuk mencipta corak ungkapan biasa yang sepadan dengan format alamat e-mel yang sah. Gunakan fungsi MatchString untuk menyemak sama ada rentetan sepadan dengan corak. Corak ini merangkumi kebanyakan format alamat e-mel yang sah, termasuk: Nama pengguna tempatan boleh mengandungi huruf, nombor dan aksara khas: !.#$%&'*+/=?^_{|}~-`Nama domain mesti mengandungi sekurang-kurangnya Satu huruf, diikuti dengan huruf, nombor atau sempang Domain peringkat teratas (TLD) tidak boleh lebih daripada 63 aksara.

Ungkapan biasa PHP: padanan tepat dan pengecualian kemasukan kabur Ungkapan biasa PHP: padanan tepat dan pengecualian kemasukan kabur Feb 28, 2024 pm 01:03 PM

Ungkapan Biasa PHP: Padanan Tepat dan Pengecualian Ungkapan tetap kemasukan kabur ialah alat padanan teks yang berkuasa yang boleh membantu pengaturcara melakukan carian, penggantian dan penapisan yang cekap semasa memproses teks. Dalam PHP, ungkapan biasa juga digunakan secara meluas dalam pemprosesan rentetan dan pemadanan data. Artikel ini akan menumpukan pada cara melakukan pemadanan tepat dan mengecualikan operasi kemasukan kabur dalam PHP dan akan menggambarkannya dengan contoh kod khusus. Padanan tepat Padanan tepat bermaksud padanan hanya rentetan yang memenuhi syarat yang tepat, bukan sebarang variasi atau perkataan tambahan.

Kuasai ungkapan biasa dan pemprosesan rentetan dalam bahasa Go Kuasai ungkapan biasa dan pemprosesan rentetan dalam bahasa Go Nov 30, 2023 am 09:54 AM

Sebagai bahasa pengaturcaraan moden, bahasa Go menyediakan ungkapan biasa yang berkuasa dan fungsi pemprosesan rentetan, membolehkan pembangun memproses data rentetan dengan lebih cekap. Adalah sangat penting bagi pembangun untuk menguasai ungkapan biasa dan pemprosesan rentetan dalam bahasa Go. Artikel ini akan memperkenalkan secara terperinci konsep asas dan penggunaan ungkapan biasa dalam bahasa Go dan cara menggunakan bahasa Go untuk memproses rentetan. 1. Ungkapan biasa Ungkapan biasa ialah alat yang digunakan untuk menerangkan corak rentetan Mereka boleh melaksanakan operasi dengan mudah seperti padanan rentetan, carian dan penggantian.

Bagaimana untuk memadankan cap masa menggunakan ungkapan biasa dalam Go? Bagaimana untuk memadankan cap masa menggunakan ungkapan biasa dalam Go? Jun 02, 2024 am 09:00 AM

Dalam Go, anda boleh menggunakan ungkapan biasa untuk memadankan cap masa: susun rentetan ungkapan biasa, seperti yang digunakan untuk memadankan cap masa ISO8601: ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ . Gunakan fungsi regexp.MatchString untuk menyemak sama ada rentetan sepadan dengan ungkapan biasa.

Bagaimana untuk mengesahkan kata laluan menggunakan ungkapan biasa dalam Go? Bagaimana untuk mengesahkan kata laluan menggunakan ungkapan biasa dalam Go? Jun 02, 2024 pm 07:31 PM

Kaedah menggunakan ungkapan biasa untuk mengesahkan kata laluan dalam Go adalah seperti berikut: Tentukan corak ungkapan biasa yang memenuhi keperluan kata laluan minimum: sekurang-kurangnya 8 aksara, termasuk huruf kecil, huruf besar, nombor dan aksara khas. Susun corak ungkapan biasa menggunakan fungsi MustCompile daripada pakej regexp. Gunakan kaedah MatchString untuk menguji sama ada rentetan input sepadan dengan corak ungkapan biasa.

Bagaimana untuk mengesan URL dengan ungkapan biasa di Golang? Bagaimana untuk mengesan URL dengan ungkapan biasa di Golang? May 31, 2024 am 10:32 AM

Langkah-langkah untuk mengesan URL di Golang menggunakan ungkapan biasa adalah seperti berikut: Susun pola ungkapan biasa menggunakan regexp.MustCompile(pattern). Corak perlu sepadan dengan protokol, nama hos, port (pilihan), laluan (pilihan) dan parameter pertanyaan (pilihan). Gunakan regexp.MatchString(pattern,url) untuk mengesan sama ada URL sepadan dengan corak.

Gunakan fungsi ungkapan biasa PHP untuk mencapai fungsi pemadanan data yang berkuasa Gunakan fungsi ungkapan biasa PHP untuk mencapai fungsi pemadanan data yang berkuasa Nov 20, 2023 pm 12:23 PM

Gunakan fungsi ekspresi biasa PHP untuk mencapai fungsi pemadanan data yang berkuasa. Dalam PHP, fungsi ekspresi biasa menyediakan banyak fungsi, menjadikan pemprosesan dan penapisan data lebih fleksibel dan mudah. 1. Sintaks asas ungkapan biasa Ungkapan biasa terdiri daripada satu siri aksara dan simbol khas dan digunakan untuk menerangkan corak rentetan. Dalam PHP, fungsi ungkapan biasa yang biasa digunakan termasuk preg_match(), preg_match

See all articles