83249


`宮の森二条13丁目` という文字に対して `宮の森二条` , `１３丁目` に区切るとき、以下のコードでは期待とは異なる結果となってしまいます。

[code]

    s = '宮の森二条１３丁目'
    s.split('条')
    →['宮の森二', '１３丁目']
    
[/code]

これを `['宮の森二条', '１３丁目']` としたいのですが、方法がわかりません。ご教授ください。


CC BY-SA 4.0
2021-10-25T08:30:55.500
83248
2021-10-25T08:53:53.123
2021-10-25T08:53:53.123
3060
29111
question
python python3
split 関数での分割時に区切り文字を残したい


以下は正規表現の後読み(look behind)を使う方法です。

[code]

    import re
    
    s = '宮の森二条１３丁目'
    re.split(r'(?<=条)', s)
    
    #=>
    ['宮の森二条', '１３丁目']
    
[/code]


CC BY-SA 4.0
2021-10-25T08:39:47.313
83249
2021-10-25T08:39:47.313
47127
83248
answer


正規表現のグルーピングを使う方法です。

[code]

    >>> import re
    >>> s = '宮の森二条１３丁目'
    >>> m = re.match('^(.*条)(.*)$', s)
    >>> l = list(m.group(1,2))
    >>> print(l)
    ['宮の森二条', '１３丁目']
    
[/code]


CC BY-SA 4.0
2021-10-25T08:53:04.260
83250
2021-10-25T08:53:04.260
45045
83248
answer