概要
今回は文字数を元にチェックしてみました
環境
- macOS 13.5.2
- Python 3.11.3
サンプルコード
def has_surrogate(s: str) -> bool:
for ts in s:
if len(ts.encode('utf-16-be')) == 2:
continue
else:
return True
return False
print(has_surrogate("𠀋")) # True
print(has_surrogate("𡗗𦰩")) # True
print(has_surrogate("Hello😀")) # True
print(has_surrogate("含まれていない")) # False
print(has_surrogate("含")) # False
print(has_surrogate("Hello")) # False
最後に
この方法だと2バイト文字列以外は全部弾くので 1 or 3 以上の文字も弾いてしまいます
正規表現でチェックする方法はないだろうか
0 件のコメント:
コメントを投稿