2017-10-16 4 views
0

문자열을 단어로 토큰 화 한 다음 번호가 포함 된 단어를 제거하려고합니다.단어에 숫자가 포함되어 있는지 확인하십시오.

tokens = ['hello', 'world', '12', '1-3', '23''] 

자세히 알 수 있듯이 숫자는 다양한 형식으로 제공됩니다. 위의 세 개는 예제 일뿐입니다. 문자열 항목을 반복하여 숫자가 있는지 확인하고 해당 문자열을 제거 할 수 있습니다. 그러나, 그것은 옳지 않은 것처럼 보입니다.

isdigit() 함수는 이러한 숫자 문자열에서 작동하지 않습니다. 이것을 어떻게 할 수 있습니까?

목표 : 숫자가 포함 된 토큰을 모두 제거해야합니다.

relevant_tokens = [token for token in tokens if not token.isdigit()] 
+6

['relevant_tokens의 = [토큰 토큰에 대한 토큰의 경우되지 않은 (c.isdigit() 토큰 C에 대한) : 내 현재 코드는 위의 유형을 처리하지 않는이 같은이다 ]'] (https://ideone.com/WYIxED)? –

+0

도움이 될 수 있습니다. https://stackoverflow.com/q/30141233/5596800 –

+0

import re; result = [len (re.findall ("\ d +", token)) == 0] – Silencer

답변

0
import re 
tokens = [token for token in tokens if not re.match('.*\d+', token)] 
+0

're.match ('\ d +', token) ' 은'abc5 '를 탐지하지 않습니다. –

+0

@ WiktorStribiżew – MohitC

+0

@MohitC 고정 위의 의견에 따라 답변을 업데이트하십시오. 특히 Wiktor에서 받아 들일 수 있습니다. – utengr

관련 문제