2017-02-27 3 views
-5

단어와 10 진수를 구별하는 정규식을 갖고 싶습니다. 입력 문자열의정규식과 10 진수를 구분하는 정규식

예 :

{[FACEBOOK23.1K],[UNKNOWN6],[SKYPE12.12M]} 

예상 결과 :. 따라서

{[FACEBOOK,23.1K],[UNKNOWN,6],[SKYPE,12.12M]} 

curently 난 're.findall (R을 사용하고 \ D + | \ D + + \ D + | \ D + '소자)

여기 소자 [FACEBOOK23.1K]이며 [FACEBOOK 23.1, K]

로 오토넷되고 난 시도 (K | M | G | T) | \ d + ', (K | M | G | T) | (\ d + 요소) 그것은 정규식 온라인 시뮬레이터에 정확하게 분리를 보여 주므로 예상 결과를 얻지 만 코드에서 시도 할 때 작동하지 않습니까? >>>>

+0

죄송합니다. [SKYPE, 12.12M]} –

+2

번거로우시겠습니까? – Fallenhero

+0

안녕하세요 Srinivas, 변경 사항에 대한 질문을 수정하고 지금까지 시도한 것을 추가하십시오. https://docs.python.org/2/howto/regex.html#search-and-replace – Himanshu

답변

1
#!/usr/bin/python2 
# -*- coding: utf-8 -*- 

import re 

text = '{[FACEBOOK23.1K],[UNKNOWN6],[SKYPE12.12M]}'; 

m = re.findall('\[([a-z]+)([^\]]+)\]', text, re.IGNORECASE); 

output = '{'; 
i = 0 
for (name,count) in m: 
    if i>0: 
     output += ',' 
    output += "["+name+","+count+"]" 
    i=i+1 
output += '}' 

print output 
+0

텍스트가 텍스트 인 경우 [= FACEBOOK23.1K ','UNKNOWN6 ','SKYPE12.12M ']; [ 'FACEBOOK, 23.1K', 'UNKNOWN, 6', 'SKYPE, 12.12M'] 정규식이 될 수있는 것과 같은 분리? –

+0

findall 함수 안에 정규 표현식을 썼습니다. – ZiTAL

+0

그래, 위의 scenerio도 #!/usr/bin/python2에 넣었습니다. # - * : coding : utf-8 - * - import re text = [ 'IP_ICMP_HELLO23 .1K ','UNKNOWN6 ','SKYPE12.12M ']; ele_list1 = [] 텍스트의 i가 인 경우 : print i m = re.findall ('[(a-z) (_)] + | [^ \]] +', i, re.IGNORECASE); ele_list1.append (m) 인쇄하기 ele_list1 –