正则匹配重复字符串中某一段内容

有这么一个字符串
s='PN:\nabcd\nPN:\nabcd\nabcd\nPN:\nabcd\nabcd\n'
s='''
PN:
abcd
PN:
abcd
abcd
PN:
abcd
abcd
'''
我只想匹配到其中两个PN之间的\nabcd\n或者\nabcd\nabcd\n,然后我用了如下正则:
result=re.search('P\s*N:\s*(.*[\s\S]*)P.*',s,re.IGNORECASE).group(0)
最后输出result的结果为:
PN:
abcd
PN:
abcd
abcd
PN:
求大神指点~
一只名叫tom的猫
浏览 1256回答 2
2回答

大话西游666

呃,问题已解决,不用正则就行了……果然之前太依赖正则被自己误导了。附上代码:lst=s1.split('PN')forindex,eachinenumerate(lst):printindex,'+',each输出结果:0+1+:abcd2+:abcdabcd3+:abcdabcd然后只需要写个函数,从外面传参数进来就可以得到任意两个PN之间的内容了……

繁星点点滴滴

不懂python,写了下js,不知道有帮助没varstr='PN:\nabcd\nPN:\nabcd\nabcd\nPN:\nabcd\nabcd\n';varresult=str.match(/PN:([a-z\n])*[^PN:]+/ig);结果["PN:\nabcd\n","PN:\nabcd\nabcd\n","PN:\nabcd\nabcd\n"]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript