我想只保留第一个匹配,把第二个、第三个以及后面的匹配字符删除。
请问这个怎么写?
如,把s中的 zz 删除掉,只保留第一个匹配到的zz
import re
p = re.compile('zz')
s = 'aafzzfdewzzfwwzzfessszz'
7 个解决方案
#1
import re
k='zz'
p = re.compile(k)
s = 'aafzzfdewzzfwwzzfessszz'
s1 = s[0:s.find(k)+len(k)] + p.sub('',s[s.find(k)+len(k):len(s)])
切一下再替换?
#2
import re
p = re.compile('zz?')
s = 'aafzzfdewzzfwwzzfessszz'
print(p.search(s).group())
#3
import re
p = re.compile('zz')
s = 'aafzzfdewzzfwwzzfessszz'
s1 = (p.split(s))
s1.insert(1, 'zz')
print(''.join(s1))
抱歉,审错题了.小白一个,取完了再插回去行不行啊
#4
import re
s = 'aafzzfdewzzfwwzzfessszz'
data = re.match(r'.*?zz',s).group(0)
info= s[len(data):]
data1 = re.sub(r'zz','',info)
data = data+data1
print(data)
先找到第一个可以匹配的地方,然后在将后面的字符串取出来,利用sub替换掉,在把2个字符串加上
s = 'aafzzfdewzzfwwzzfessszz'
data = re.match(r'.*?zz',s).group(0)
info= s[len(data):]
data1 = re.sub(r'zz','',info)
data = data+data1
print(data)
先找到第一个可以匹配的地方,然后在将后面的字符串取出来,利用sub替换掉,在把2个字符串加上
#5
要什么结果呢?
#6
第一个匹配的什么是不是没说清楚?按说直接用find就是找第一个匹配项,关键看你正则匹配模式怎么写
#7
来膜拜一下大神吧
import re
def repl(mch, cnt=[0]):
cnt[0] += 1
if cnt[0] == 1:
return mch.group(0)
else:
return ''
s = 'aafzzfdewzzfwwzzfessszz'
print(re.sub(r'(zz)',repl, s))
# aafzzfdewfwwfesss
#1
import re
k='zz'
p = re.compile(k)
s = 'aafzzfdewzzfwwzzfessszz'
s1 = s[0:s.find(k)+len(k)] + p.sub('',s[s.find(k)+len(k):len(s)])
切一下再替换?
#2
import re
p = re.compile('zz?')
s = 'aafzzfdewzzfwwzzfessszz'
print(p.search(s).group())
#3
import re
p = re.compile('zz')
s = 'aafzzfdewzzfwwzzfessszz'
s1 = (p.split(s))
s1.insert(1, 'zz')
print(''.join(s1))
抱歉,审错题了.小白一个,取完了再插回去行不行啊
#4
import re
s = 'aafzzfdewzzfwwzzfessszz'
data = re.match(r'.*?zz',s).group(0)
info= s[len(data):]
data1 = re.sub(r'zz','',info)
data = data+data1
print(data)
先找到第一个可以匹配的地方,然后在将后面的字符串取出来,利用sub替换掉,在把2个字符串加上
s = 'aafzzfdewzzfwwzzfessszz'
data = re.match(r'.*?zz',s).group(0)
info= s[len(data):]
data1 = re.sub(r'zz','',info)
data = data+data1
print(data)
先找到第一个可以匹配的地方,然后在将后面的字符串取出来,利用sub替换掉,在把2个字符串加上
#5
要什么结果呢?
#6
第一个匹配的什么是不是没说清楚?按说直接用find就是找第一个匹配项,关键看你正则匹配模式怎么写
#7
来膜拜一下大神吧
import re
def repl(mch, cnt=[0]):
cnt[0] += 1
if cnt[0] == 1:
return mch.group(0)
else:
return ''
s = 'aafzzfdewzzfwwzzfessszz'
print(re.sub(r'(zz)',repl, s))
# aafzzfdewfwwfesss