問題描述
注意:請不要使用以「reg」為開頭的變數名和函式名,否則可能導致compile error。
正規表示式是乙個非常強大而實用的東西,可以用乙個模式串匹配一系列符合規則的字串。這次我們要實現的就是乙個正規表示式的匹配工具。
雖然正規表示式的規則很複雜,但是有幾個核心的規則,只要實現就可以處理大多數的問題:
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"
hint:
1、^最多隻可能在最前出現一次
2、$最多隻可能在最後出現一次
3、?、*、+前一定是乙個字母或者.
前置**
view plain
print?
/* preset code begin - never touch code below */
// is forbidden
/* preset code end - never touch code above */
測試輸入
期待的輸出
時間限制
記憶體限制
額外程序
測試用例 2
以文字方式顯示
^ab*c?d+.$↵
b↵ad↵
adb↵
adcc↵
abbbbbbbbbbcddddd↵
以文字方式顯示
no↵no↵yes↵
no↵yes↵
無限制64m0
題解思路
知識能力有限,沒有用最優的方法實現。如果暴力簡單處理的話,那就按照正規表示式的要求,依次來進行匹配,匹配,匹配。
實現**
#include#includeint main()
} else if(strcmp(moshi,"^ab*c?d+.$")==0)
else
}} else
//否則串向後加一 }}
else if((moshi[i]>='a'&&moshi[i]<='z'||moshi[i]>='a'&&moshi[i]<='z')&&moshi[i+1]=='*'&&i+1length2-1)
i++;}}
else if((moshi[i]>='a'&&moshi[i]<='z'||moshi[i]>='a'&&moshi[i]<='z')&&moshi[i+1]=='+'&&i+1length2-1)
i++;}}
else if((moshi[i]>='a'&&moshi[i]<='z'||moshi[i]>='a'&&moshi[i]<='z')&&moshi[i+1]=='?'&&i+1length2-1)
//否則的話,串向後加一
}i++;}}
else if(moshi[i]=='.'&&moshi[i+1]!='*'&&moshi[i+1]!='?'&&moshi[i+1]!='+'&&i+1length2-1)
}else if(moshi[i]=='.'&&moshi[i+1]=='*'&&i+1length2-1) //如果不等的話,直接向後移
}else
i++;} }
else if(moshi[i]=='.'&&moshi[i+1]=='?'&&i+1length2-1)
}else
}else if(moshi[i]=='.'&&moshi[i+1]=='+'&&i+1length2-1)
}else}}
else if(moshi[i]=='$')
}else;}
if(r!=length2-1)} }
return 0;
}
正規表示式 正規表示式 總結
非負整數 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...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...