① 用python解一道通配符匹配的算法题

假设输入的字符串为s,匹配串为p,代码如下

classSolution(object):
defisMatch(self,s,p):
"""
:types:str
:typep:str
:rtype:bool
"""
sIndex,pIndex=0,0
sLen=len(s)
pLen=len(p)
sPrevIndex,pPrevIndex=1,pLen
whilesIndex<sLen:
#当两个串对应位置字母可以等价时,各自索引均向后
ifpIndex<pLenand(s[sIndex]==p[pIndex]orp[pIndex]=='?'):
sIndex+=1
pIndex+=1
#当模式串为*时,先以匹配0个的方式暂时匹配
elifpIndex<pLenandp[pIndex]=='*':
sPrevIndex=sIndex+1
pPrevIndex=pIndex
pIndex+=1
#当暂时匹配失败时,以匹配多1个的方式继续匹配
elifpPrevIndex<pLen:
sIndex,pIndex=sPrevIndex,pPrevIndex
#匹配失败
else:
returnFalse
#看模式串剩下的字母是否均为*
foriinrange(pIndex,pLen):
ifp[i]!='*':
returnFalse
returnTrue

② Python中的%通配符有什么使用规则

%这个在字符串中是属于格式化的一种字符
比如 print( "%d"%2) 这样输出的就是 2 %d 就是说输出数字 后面 就必须跟着 int 型的数字
print("%s"%"你好") 这样就是输出 你好 这个字符 这里的%s 就是输出 字符串 后面跟着的是一个str 类型的参数
print("你好 %s 我今年%d岁"%("张三",12)) 这样是输出: 你好张三 我我今年12岁 后面跟着的就是一个元组类型的数据 这个元组 就要求 前面是str 后面是int
关于字符串的格式化还有一个 更加厉害的方法 就是 format() 这个你可以查一下 很多教程
手机码字 望点赞

③ Python字符串操作的split方法

str.split()没有参数,代表以空字符分割,空字符包括空格、制表符、回车符、换行符等。因版此,字符串中权的空格和\n都是无参的split()的分割符。Line1-abcdef \nLine2-abc \nLine4-abcd分割后得到['Line1-abcdef', '', 'Line2-abc', '', 'Line4-abcd'],然后,split会抛弃得到的所有空字符串,因此最终结果就是['Line1-abcdef', 'Line2-abc', 'Line4-abcd']。

④ python中字符串拼接

if__name__=='__main__':
result=''
data=['num1','num2','num3','num4']
foriinrange(len(data)):
result+='OR'+'''+data[i]+'''
print(result)

⑤ python正则怎样匹配出字符串中的字母

r'/"\s*(\w+)\b'
取分组1

⑥ python 通配符匹配如何进行

我觉得你可以使用正则表达式,比如:

importre
p=re.compile('.*.sougou.com')
s="ht.sougou.com!@#$%^&*()"

ifp.match(s):
print'True'

⑦ python中的正则表达式,匹配一串字符串,每一组用;分开每一组里面是XXXX:like(eq):XXXXX;

|
string="lll:zz;sd;a1:like:dd,cc,z1;s:eq:d8;c2:like::e5,42;c:like:88,99";
p=re.compile(r'(?<=;)((?:(?!专:(like|属eq):).)*:(like|eq):(?:(?!:(like|eq):).)*)(?=(;|$))');
result=p.findall(string);
foreleinresult:
printele[0]

⑧ PYTHON 路径通配符问题

何必纠结于这细节呢

  1. 一是类似的细节太多 根本记不住

  2. 其次这些细节不影响功能实现,比如说你要按你的期望方式过滤路径,那完全可以先把所有路径得出来,然后再用正则表达式筛选(正则表达式有问题那就是大bug了)

⑨ python字符串运算符

可以使用eval()函数复,表制示执行字符串表示的代码,例如你这个例子:

a='a'
b='in'
c='abc'
str="a"+b+"c"#拼接为"ainc"
printeval(str)#输出True

⑩ 在python中,字符串如何进行全字符匹配

import re pattern = re.compile("(?=([a-z]+ [a-z]+))")arry = pattern.findall("a b c d e f g h")

(?=...)匹配不会消耗字符