私は、見た目の数だけ、:)
/:))))
...を+
と置き換えたいと思います。 例えば:regexは(エモチコン)文字の繰り返しを置き換えます。
:) -> +
:))) -> +++
と負に同じ:
:( -> -
:((( -> ---
また、左利きの顔文字のために一致している必要があります:
(: -> +
(((: -> +++
): -> -
))): -> ---
可能? :)
私は、見た目の数だけ、:)
/:))))
...を+
と置き換えたいと思います。 例えば:regexは(エモチコン)文字の繰り返しを置き換えます。
:) -> +
:))) -> +++
と負に同じ:
:( -> -
:((( -> ---
また、左利きの顔文字のために一致している必要があります:
(: -> +
(((: -> +++
): -> -
))): -> ---
可能? :)
どうしてですか?
>>> def get_emoticon(txt):
return re.sub(r':(([\(\)])+)', lambda m: '-'*len(m.group(1)) if m.group(2) == '(' else '+' * len(m.group(1)), txt)
>>> get_emoticon(':) hi :))) how r you? :(((:(')
'+ hi +++ how r you? --- -'
>>>
更新:
>>> def get_emoticon(txt):
def func(match):
if match.group().startswith(':'):
return '-'*len(match.group(1)) if match.group(2) == '(' else '+' * len(match.group(1))
return '+'*len(match.group(3)) if match.group(4) == '(' else '-' * len(match.group(3))
return re.sub(r':(([\(\)])+)|(([\(\)])+):', lambda m: func(m), txt)
>>> get_emoticon(':) (: hi :))) how r you? :(((:(')
'+ + hi +++ how r you? --- -'
>>> get_emoticon(':) (:))): hi :))) how r you? :(((:(')
'+ + --- hi +++ how r you? --- -'
>>>
すべてが可能です。 – Maroun
@MarounMaroun ^^正規表現:-) –
@AvinashRajでも、すべて可能です;) – Maroun