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

有这么一个字符串

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學習者快速成長!