#include<bits/stdc++.h>
using namespace std;
string rule[105],ans[105],qer[105];
bool match(string s,string t,bool flag){//s:规则、 t:url地址
int i=0,j=0;
while(i<s.size()&&j<t.size()){
if(i<s.size()&&j<t.size()&&s[i]==t[j]){
i++;
j++;
}
else if(s[i]=='<'){
if(flag)
cout<<" ";
i++;
if(s[i]=='i'){// int
bool ok=false;
while(j<t.size()&&t[j]!='/'){
if(!isdigit(t[j]))
return false;
if(t[j]!='0')
ok=true;
if(flag&&ok)
cout<<t[j];
j++;
}
i+=4;
}
else if(s[i]=='s'){
while(j<t.size()&&t[j]!='/'){
if(flag)
cout<<t[j];
j++;
}
i+=4;
}
else if(s[i]=='p'){
while(j<t.size()){
if(flag)
cout<<t[j];
j++;
}
i+=5;
}
}
else if(s[i]!=t[j])
return false;
}
if(i==s.size()&&j==t.size())
return true;
return false;
}
int main(){
int n,m,i,j;
cin>>n>>m;
for(i=0;i<n;i++)
cin>>rule[i]>>ans[i];
for(i=0;i<m;i++)
cin>>qer[i];
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(match(rule[j],qer[i],false)){
cout<<ans[j];
match(rule[j],qer[i],true);
cout<<endl;
break;
}
}
if(j>=n)
printf("404\n");
}
return 0;
}
CCF认证201803-3 URL映射
最新推荐文章于 2019-09-13 13:54:56 发布