python - 正则匹配重复字符串中某一段内容
黄舟
黄舟 2017-04-17 15:53:10
0
2
371

有这么一个字符串

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:

求大神指点~

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답(2)
左手右手慢动作

呃,问题已解决,不用正则就行了……
果然之前太依赖正则被自己误导了。
附上代码:

lst = s1.split('PN')
for index, each in enumerate(lst):
    print index, ' + ', each

输出结果:

0  +  
1  +  : 
    abcd
2  +  : 
    abcd
    abcd 
3  +  : 
    abcd
    abcd

然后只需要写个函数,从外面传参数进来就可以得到任意两个PN之间的内容了……

巴扎黑

不懂python,写了下js,不知道有帮助没

var str = 'PN:\nabcd\nPN:\nabcd\nabcd\nPN:\nabcd\nabcd\n';
var result = str.match(/PN:([a-z\n])*[^PN:]+/ig);

结果

["PN:\nabcd\n", "PN:\nabcd\nabcd\n", "PN:\nabcd\nabcd\n"]
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!