12 正規表示式

2021-08-02 17:55:10 字數 1366 閱讀 9441

正規表示式

是乙個非常強大而實用的工具,可以用乙個模式串匹配一系列符合規則的字串。現在就請大家實現乙個正規表示式的匹配工具。雖然正規表示式的規則很複雜,但其中的核心規則,只要實現就可以處理大多數的問題:

c:匹配任意字母c

.:匹配任意的單個字元

^:匹配輸入字串的開頭

$:匹配輸入字串的結尾

*:匹配前乙個字元的零個或者多個出現。例如 zo* 可以匹配 z、zo、zoo、zooo

?:匹配前乙個字元0次或一次。例如 zo? 可以匹配 z、zo

+:匹配前乙個字元1次或多次。例如 zo+ 可以匹配 zo、zoo、zooo,但是不能匹配 z

輸入

輸入第一行為乙個正規表示式的模式串,只包含大小寫字母和以上字元。1 ≤ 串長 ≤ 20

輸入第二行開始,每行乙個字串,只包含大小寫字母。1 ≤ 串長 ≤ 100

輸入以eof結束,字串的個數不超過100。

輸出

對於輸入的每個字串,如果模式串可以匹配,輸出「yes」,否則輸出"no"。

提示

1. ^最多隻可能在最前出現一次

2. $最多隻可能在最後出現一次

3. ?、*、+前一定是乙個字母或者.

4. 請不要使用以「reg」為開頭的變數名和函式名,否則可能導致compile error。

前置**

/* preset code begin - never touch code below */

// is forbidden

/* preset code end - never touch code above */

測試輸入

期待的輸出

時間限制

記憶體限制

額外程序

測試用例 1

以文字方式顯示

^ac+d?e*$↵

aaaaaa↵

accccc↵

acccdeeeeee↵

accdd↵a↵

以文字方式顯示

no↵yes↵

yes↵

no↵no↵

1秒1024kb0

這個**基本上是直接用了別的同學的,自己並不會寫。。。

#include //ac

#include char txtstr[102] = , mostr[22] = ;

int str_fnd(char *m, char *t);

void extrn_hj_del(int j)

{ for (; j

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 學習筆記1 2

書接上一回 例項三 資料提取 要求 從一段html 中提取出所有的 email 位址和 a href.tag 中的鏈結位址 public class htmltest system.out.println 開始檢查超連結 for string link extractlink htmltext pr...

python 12 正規表示式

import re re.match pattern,string flags re.search pattern,string flags re.match 只匹配字串的開頭部分,re.search 匹配的則是整個字串中的子串。re.findall pattern,string 返回所有匹配的物件...