手工制作大全 简单易学qq关键词排名优化
Powered by:NEFU AB-IN
Link
文章目录
- HJ71 字符串通配符
- 题意
- 思路
- 代码
HJ71 字符串通配符
-
题意
问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。
要求:
实现如下2个通配符:
:匹配0个或以上的字符(注:能被和?匹配的字符仅由英文字母和数字0到9组成,下同)
?:匹配1个字符
注意:匹配时不区分大小写。 -
思路
正则表达式的运用
- s1字符串进行替换操作,将其中的点(.)、问号(?)、和星号(*)分别替换为反斜杠+字符(.)、数字或小写字母字符的字符集([0-9a-zA-Z])、和井号(#)
- 使用正则表达式替换,将连续的井号(#)替换为匹配零个或多个数字或字母字符的正则表达式模式[0-9a-zA-Z]*。这是为了将多个星号替换为一个匹配多个字符的正则表达式
- if bool(re.fullmatch(s1, s2))::使用re.fullmatch()函数来尝试匹配s1和s2,如果匹配成功,就返回一个匹配对象,这个条件就为真。如果没有匹配,条件为假。
-
代码
import re while True:try:s1 = input().lower()s2 = input().lower()s1 = s1.replace('.', '\.').replace('?', '[0-9a-zA-Z]').replace('*','#')s1 = re.sub('#+','[0-9a-zA-Z]*',s1)if bool(re.fullmatch(s1, s2)):print('true')else:print('false')except:break