在python中使用re.search()打印列表中出现的字符串不匹配
以下代码生成如下输出:在python中使用re.search()打印列表中出现的字符串不匹配,python,regex,Python,Regex,以下代码生成如下输出: import re lst1 = ['abc','xyz'] lst2 = ['abc','xxx'] for i in range(len(lst1)): x = re.search(lst2[i], lst1[i]) print(x) 这里的第一个不匹配发生在两个列表中的x之后,因此是所需的输出。 请输入。这里有一种方法 Mismatch: lst1 x*yz lst2 x*xx 这里有一种方法 Mismatch: lst1 x*yz
import re
lst1 = ['abc','xyz']
lst2 = ['abc','xxx']
for i in range(len(lst1)):
x = re.search(lst2[i], lst1[i])
print(x)
这里的第一个不匹配发生在两个列表中的x之后,因此是所需的输出。
请输入。这里有一种方法
Mismatch: lst1
x*yz
lst2
x*xx
这里有一种方法
Mismatch: lst1
x*yz
lst2
x*xx
这是我的解决方案,您可以尝试:
lst1
x*yz
lst2
x*xx
输出
import re
lst1 = ['abc','xyz','xxzz','xxz']
lst2 = ['abc','xxx','xxx','xxxx']
for i in range( min( len(lst1), len(lst2) )):
re_compiler=re.compile('^'+lst2[i]+'$')
match=re_compiler.search(lst1[i])
if match==None:
misIndex=0
for x in range( min( len(lst1[i]), len(lst2[i]) )):
if lst1[i][x]==lst2[i][x]:
misIndex+=1
else: break
misLst1=(lst1[i][0:misIndex] +'*'+ lst1[i][misIndex:])
misLst2=(lst2[i][0:misIndex] +'*'+ lst2[i][misIndex:])
print(
'Mismatch: lst1'+'\n' +
misLst1 +'\n' +
'\n'+
'lst2' +'\n' +
misLst2 +'\n'
)
这是我的解决方案,您可以尝试:
lst1
x*yz
lst2
x*xx
输出
import re
lst1 = ['abc','xyz','xxzz','xxz']
lst2 = ['abc','xxx','xxx','xxxx']
for i in range( min( len(lst1), len(lst2) )):
re_compiler=re.compile('^'+lst2[i]+'$')
match=re_compiler.search(lst1[i])
if match==None:
misIndex=0
for x in range( min( len(lst1[i]), len(lst2[i]) )):
if lst1[i][x]==lst2[i][x]:
misIndex+=1
else: break
misLst1=(lst1[i][0:misIndex] +'*'+ lst1[i][misIndex:])
misLst2=(lst2[i][0:misIndex] +'*'+ lst2[i][misIndex:])
print(
'Mismatch: lst1'+'\n' +
misLst1 +'\n' +
'\n'+
'lst2' +'\n' +
misLst2 +'\n'
)
感谢您提供的解决方案,当在缺少的字符串上放置“*”时,它会给出一个错误,不能将序列与类型为“str”的非int相乘,看起来像一些缺少的引号;可能应该是
print('lst1\n',i[:first\u mismatch],*'',i[first\u mismatch:])
将尝试所有类型的输入并相应地更改代码。感谢you@ManjunathR您还需要帮助吗?谢谢您提供的解决方案,在缺少的字符串上放置“*”时,它会给出一个错误,不能将序列乘以类型为“str”的非int,看起来像是缺少引号;可能应该是print('lst1\n',i[:first\u mismatch],*'',i[first\u mismatch:])
将尝试所有类型的输入并相应地更改代码。感谢you@ManjunathR你在这里还需要帮助吗?工作正常,也会尝试其他类型的输入。谢谢你工作顺利,我也会尝试其他类型的输入。非常感谢。