감동, 마음이 움직이는 것

[python] string안에 여러 특정 문자가 포함되어 있는지 알고 싶을 때 본문

Tips (Utility, Computer Language, and etc.)

[python] string안에 여러 특정 문자가 포함되어 있는지 알고 싶을 때

Struggler J. 2017. 12. 20. 21:39

https://stackoverflow.com/questions/5188792/how-to-check-a-string-for-specific-characters


s = "test"

target = set("abcdefg")

if any( (c in target) for c in s ):

print s


한글에서는 안 된다...  유니코드라서 그렇다. 한 글자가 3개의 유닛으로 적혀있어서 그 세 개중에 하나라도 있으면 있다고 찾아 버린다.

예를들어,

target = set("랄라")는  유니코드로 '\xeb\x9e\x84\xeb\x9d\xbc'이다.

s="뭐래"는 '\xeb\xad\x90\xeb\x9e\x98'이다. 

그래서 위와 같은 방법을 사용하면 \xeb가 같아서 같은 글자가 있다고 찾아버린다

이런경우 list를 사용해서 문제를 해결할 수 있었다.


s = "바보"

target = ["흥", "칫", "뿡" ]

for c in target:

if c in s:

print s