正規表示式
是乙個非常強大而實用的工具,可以用乙個模式串匹配一系列符合規則的字串。現在就請大家實現乙個正規表示式的匹配工具。雖然正規表示式的規則很複雜,但其中的核心規則,只要實現就可以處理大多數的問題:
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 返回所有匹配的物件...