正規表示式 分組

2021-05-24 08:57:47 字數 1327 閱讀 6211

正規表示式對於單個字元的重複,非常方便。比如/d+表示1個或多個數字,*表示重複0次或多次;+重複1次或多次;?重複0次或1次;重複n次;重複n次或多次;重複n次到m次;指定的字元後加特定的限定符,即可實現單字元的重複,那麼,對於一組字串的重複,正規表示式該如何操作?

用小括號來指定子表示式(或稱分組),對指定的子表示式進行重複,即一組字串的重複。

1、簡單分組應用

例:ip正確匹配

function isdigit(str)

var reg = /^((2[0-4]/d|25[0-5]|0|1?/d/d?)/.)(2[0-4]/d|25[0-5]|0|1?/d/d?);

return reg.test(str);

var str = "232.0.123.255";

document.write("result is "+isdigit(str));  result is true

2、向後引用—用於重複搜尋前面某個分組匹配的文字

組號分配原則:

(1)分組0對應整個正規表示式

(2)組號分配過程是從左向右掃瞄兩遍:第一遍只給未命名組分配,第二遍只給命名組分配。因此所有命名組的組號都大於未命名組的組號。

(3)可以使用(?:exp)這樣的語法剝奪乙個分組對組號分配的參與權

例:function isdigit1()

var reg = //b(/w+)/b/s+/1/b/;

var str = "good good";

document.write("result is "+reg.test(str)); result is true

整個表示式/b(/w+)/b/s+/1/b組號為0,(/w+)組號為1

3、零寬斷言

(1)(?=exp)—零寬度正**先行斷言,匹配exp前面的位置

function isdigit2()

var reg = //w+(?=ing/b)/ig;

var str = "i'm singing while you're dancing.";

var arry = str.match(reg);

for(var i=0;i(2)(?<=exp)—零寬度正回顧後發斷言,匹配exp後面的位置

function isdigit2()

var reg = //w+(?=re/b)/ig;

var str = "reading a book

";var arry = str.match(reg);

for(var i=0;i

分組 正規表示式

在正規表示式中,可以用小括號將一些規則括起來當作分組,分組可以作為乙個元字元來看待。d d這是乙個簡單的且不完善的匹配 ip 位址的正規表示式,因為它除了能匹配正確的 ip 位址外,還能匹配如 322.197.578.888 這種不存在的 ip 位址。當然,用這個表示式簡單匹配成功後可以在利用 ph...

正規表示式 分組

group 分組 分了幾組就看分了幾個小括號 分了幾對小括號 當有巢狀的小括號時,怎麼區分那個是第一組那個是第二組呢?只需要數小括號邊的左小括號,看到第乙個左小括號就是第一組,第二個左小括號就是第二組 group 分組 public class test8 3到5位的數字 a z 2位的字母 a z...

正規表示式 分組

字元功能 匹配字串開頭 匹配字串結尾 coding utf 8 import re email list xiaowang 163.com xiaowang 163.comheihei com.xiaowang qq.com for email in email list ret re.match ...