正則和字串之間的關係梳理

2021-09-08 19:23:42 字數 1663 閱讀 2151

正則一直讓人又愛又恨,因為使用正則能夠快速方便的解決一些原本很複雜的問題。而正則用的最多也就是字串的處理。他倆關係還真是有點曖昧複雜,讓人傻傻有點搞不清楚,有必要進行梳理一番。

正則常用的方法有:

1、test:pattern.test(string); 返回true or false;

2、exec:pattern.test(string);返回乙個匹配資訊的陣列,沒有匹配項返回null。

ps:同乙個字串上多次呼叫始終返回第乙個匹配資訊。只有設定了(g)全域性屬性,才會返回下乙個匹配項,直到字串末尾。

var pattern=/<(\w+)(>)/g;

var se=pattern.exec(str);

var se1=pattern.exec(str);

console.log(se)

//[ "", "tt" ,">"]陣列第一項是匹配項,第二項代表第乙個捕獲項

console.log(se1)//

[ "", "rr",">" ]陣列第一項是匹配項,第二項代表第乙個捕獲項,第三項代表第二個捕獲項

字串中可以使用正則的方法:

1、match:只接受乙個引數,與呼叫pattern.exec()本質上相同,返回同乙個陣列。

var str='

';

var ss=str.match(/<\w+>/); //

[ "" ]

var sss=str.match(/<\w+>/g); //

[ "", "", "", "", "", "", "" ]

2、search:只接受乙個引數,返回字串中第乙個匹配項的索引,沒有找到返回-1

var sea=str.search(/<\w+>/);  //

0var sea1=str.search(/<\w+\/>/);//

8

3、replace:

var text="cat bat ut dat";

var re=text.replace("at","11");//

c11 bat ut dat

var re1=text.replace(/at/g,"11");//

c11 b11 ut d11

var re2=text.replace(/(.a(t))/g, "$1$2") ;//

catt batt ut datt

function

replacetext(text))

}replacetext(text);

//at 1 cat bat ut dat

//at 5 cat bat ut dat

//at 12 cat bat ut dat

//最終結果是cundefined bundefined ut dundefined

//因為函式沒有返回值,所以是undefined

4、split:可以有第二個引數,表明返回的陣列的長度

var result=text.split(/\s/);//

[ "cat", "bat", "ut", "dat" ]

var result1=text.split(/\s/,2);//

[ "cat", "bat"]

詳解php中空字串和0之間的關係

x row x y row y if isset x isset y elseif empty row y empty row x else if d radius 其實我是想要 過濾掉 經緯度為空的資料,保留經度或緯度為0的資料,但發現在列印列表資料時,總是包含 經緯度為空的資料。研究了好久,才發...

字元,字串,字串處理函式的關係

字元,字串,字串處理函式的關係 include include define arra size 80 intmain printf the min is puts min return0 主要程式實現了乙個輸入五個學生姓名,按照字典順序輸出首字母排在最前面學生的姓名 在codeblock上使用與s...

java中字串陣列和字串之間的轉換

字串陣列轉為字串 1.如果是 字串陣列 轉 字串 只能通過迴圈,沒有其它方法 char data string s new string data 陣列轉換為字串string string a,b,c string stringarr string.split 注意分隔符是需要轉譯滴.如果是 abc...