2016-04-15 8 views
0

数字の後ろに「#」文字(その文字列に32を印刷する必要があります)を印刷したいとします。文字列を特殊文字に分割する

from __future__ import print_function 
    import re 

    b = '3rd-libraries #32' 
    m = re.split(r'[ ](?=#)', b) 
    print (m) 

リスト出力:(!)

['3rd-libraries', '#32'] 
+0

なぜ 'b.split( '#')'? – vaultah

+0

私は正規表現と一致しようとしています。私はそのことを試みました。ありがとう! – user6136315

+0

Python 3を使用している場合、なぜ '__future__ import print_function'を使用していますか? – MattDMo

答えて

0

ハッシュ後の最初の数字を印刷するには、あなたができる:

import re 

b = '3rd-libraries #32' 
m = re.search(r'#(\d+)', b) 
print m.group(1) 
0

これは作品です。

from __future__ import print_function 
    import re 

    b = '3rd-libraries #32' 
    m = re.split(r'#', b) 
    print (m[1]) 
0

1つの値をキャプチャするだけでよい場合は、スプリットを使用する必要はありません。正規表現lookaheadを代わりに使用することをおすすめします。

(?<=#)\d+ 

例:

import re 

text = "3rd-libraries #32" 

m = re.search(r'(?<=#)\d+', text) 
if m: 
    print m.group() 

出力:

32 
関連する問題