回溯法(三) 正規表示式匹配問題

2022-03-03 20:35:30 字數 551 閱讀 6634

遇到非萬用字元時,我們就直接跟文字的字元進行匹配,如果相同,則繼續往下處理;如果不同,則回溯(即當前一段程式結束,回到上乙個呼叫的程式入口)。

c++版本**如下

#include#include#include using namespace std;

bool matched = false;

void match(int ti, int pj, char text, int tlen, char patten, int plen)

// 下面是回溯法的「for迴圈」判斷這一步有幾種可能

// 1、正規表示式當前字元為" * "

if(patten[pj] == '*')

// 2、正規表示式當前字元為" ? "

else if(patten[pj] == '?')

// 3、正規表示式當前字元與文字串相等

else if(patten[pj] == text[ti])

// 否則就回溯

}int main()

正規表示式(三) 正規表示式中的重複

我們在之前知道了正規表示式元字元的概念,再結合上重複的概念,才能寫出來一些相對高階的正規表示式。因為在實際的正規表示式的使用過程中,我們肯定不是那麼簡單的只用元字元來進行一些簡單的匹配,一般情況下還需要配合上重複的概念才能從乙個很長很亂的字串中匹配出我們想要的東西。下面我們會從下面的幾個方面來進行正...

perl筆記(三) 正規表示式

正規表示式 匹配任意乙個字元 匹配前一字元零次或多次 匹配任意字元零次或多次 匹配前一字元一次或多次 匹配前一字元零次或一次 或,擇一匹配 a z abc 匹配其中乙個 s 匹配任意空白字元 da fa f 匹配十六進製制數 d 匹配任何數字 d 匹配任何非數字 d d 匹配任意字元 小寫為原意,大...

python基礎(三) 正規表示式

import re 匹配abc m re.findall abc aabbccabccbaccbaaabcabc print m 匹配一位數字,digit m re.findall d 123abc1a2b3c1b2c3a print m 匹配四位數字 m re.findall d d d d 12...