正则表达式是对字符串操作的一种逻辑公式;作用:检索、替换那些符合某个模式(规则)的文本,可以通过一些设定的规则来匹配一些字符串,是一个强大的字符串匹配工具。
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
正则表达式的作用
正则表达式可以用来检索、替换那些符合某个模式(规则)的文本;可以通过一些设定的规则来匹配一些字符串,是一个强大的字符串匹配工具。
正则表达式方法
基本语法,正则声明
js中,正则的声明有两种方式
1、直接量语法:
var reg = /d+/g/
2、创建RegExp对象的语法
var reg = new RegExp("\\d+", "g");
这两种声明方式其实还是有区别的,平时的话我比较喜欢第一种,方便一点,如果需要给正则表达式传递参数的话,那么只能用第二种创建RegExp的形式
格式:
var pattern = new RegExp('regexp','modifier');
regexp: 匹配的模式,也就是上文指的正则规则。
modifier: 正则实例的修饰符,可选值有:
i : 表示区分大小写字母匹配。
m :表示多行匹配。
g : 表示全局匹配。
传参的形式如下:
我们用构造函数来生成正则表达式
var re = new RegExp("^\\d+$","gim");
这里需要注意,反斜杠需要转义,所以,直接声明量中的语法为\d,这里需要为 \\d
那么,给它加变量,就和我们前面写的给字符串加变量一样了。
var v = "bl"; var re =new RegExp("^\\d+" + v + "$","gim"); // re为/^\d+bl$/gim
支持正则的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
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"]
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 });
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
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
更多相关知识,请访问 PHP中文网!!

PHP는 현대적인 프로그래밍, 특히 웹 개발 분야에서 강력하고 널리 사용되는 도구로 남아 있습니다. 1) PHP는 사용하기 쉽고 데이터베이스와 완벽하게 통합되며 많은 개발자에게 가장 먼저 선택됩니다. 2) 동적 컨텐츠 생성 및 객체 지향 프로그래밍을 지원하여 웹 사이트를 신속하게 작성하고 유지 관리하는 데 적합합니다. 3) 데이터베이스 쿼리를 캐싱하고 최적화함으로써 PHP의 성능을 향상시킬 수 있으며, 광범위한 커뮤니티와 풍부한 생태계는 오늘날의 기술 스택에 여전히 중요합니다.

PHP에서는 약한 참조가 약한 회의 클래스를 통해 구현되며 쓰레기 수집가가 물체를 되 찾는 것을 방해하지 않습니다. 약한 참조는 캐싱 시스템 및 이벤트 리스너와 같은 시나리오에 적합합니다. 물체의 생존을 보장 할 수 없으며 쓰레기 수집이 지연 될 수 있음에 주목해야합니다.

\ _ \ _ 호출 메소드를 사용하면 객체를 함수처럼 호출 할 수 있습니다. 1. 객체를 호출 할 수 있도록 메소드를 호출하는 \ _ \ _ 정의하십시오. 2. $ obj (...) 구문을 사용할 때 PHP는 \ _ \ _ invoke 메소드를 실행합니다. 3. 로깅 및 계산기, 코드 유연성 및 가독성 향상과 같은 시나리오에 적합합니다.

섬유는 PHP8.1에 도입되어 동시 처리 기능을 향상시켰다. 1) 섬유는 코 루틴과 유사한 가벼운 동시성 모델입니다. 2) 개발자는 작업의 실행 흐름을 수동으로 제어 할 수 있으며 I/O 집약적 작업을 처리하는 데 적합합니다. 3) 섬유를 사용하면보다 효율적이고 반응이 좋은 코드를 작성할 수 있습니다.

PHP 커뮤니티는 개발자 성장을 돕기 위해 풍부한 자원과 지원을 제공합니다. 1) 자료에는 공식 문서, 튜토리얼, 블로그 및 Laravel 및 Symfony와 같은 오픈 소스 프로젝트가 포함됩니다. 2) 지원은 StackoverFlow, Reddit 및 Slack 채널을 통해 얻을 수 있습니다. 3) RFC에 따라 개발 동향을 배울 수 있습니다. 4) 적극적인 참여, 코드에 대한 기여 및 학습 공유를 통해 커뮤니티에 통합 될 수 있습니다.

PHP와 Python은 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1.PHP는 간단한 구문과 높은 실행 효율로 웹 개발에 적합합니다. 2. Python은 간결한 구문 및 풍부한 라이브러리를 갖춘 데이터 과학 및 기계 학습에 적합합니다.

PHP는 죽지 않고 끊임없이 적응하고 진화합니다. 1) PHP는 1994 년부터 새로운 기술 트렌드에 적응하기 위해 여러 버전 반복을 겪었습니다. 2) 현재 전자 상거래, 컨텐츠 관리 시스템 및 기타 분야에서 널리 사용됩니다. 3) PHP8은 성능과 현대화를 개선하기 위해 JIT 컴파일러 및 기타 기능을 소개합니다. 4) Opcache를 사용하고 PSR-12 표준을 따라 성능 및 코드 품질을 최적화하십시오.

PHP의 미래는 새로운 기술 트렌드에 적응하고 혁신적인 기능을 도입함으로써 달성 될 것입니다. 1) 클라우드 컴퓨팅, 컨테이너화 및 마이크로 서비스 아키텍처에 적응, Docker 및 Kubernetes 지원; 2) 성능 및 데이터 처리 효율을 향상시키기 위해 JIT 컴파일러 및 열거 유형을 도입합니다. 3) 지속적으로 성능을 최적화하고 모범 사례를 홍보합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

WebStorm Mac 버전
유용한 JavaScript 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기
