>

수천 개의 댓글에서 백분율을 추출하려고하지만 형식이 다릅니다. 사람은 10 %를 10 또는 10 % 또는 10.00 % 또는 10.0으로 쓸 수 있으므로 이러한 가능성을 처리 할 수 ​​있어야합니다. 두 가지 문제가 있습니다. 첫 번째는 코드가 사용 가능한 경우 %를 캡처하지 않으며 두 번째는 때로는 정규식 문이 특정 수를 여러 번 캡처한다는 것입니다.

FA_comment = "WPSGX 7.69% SVAIX 7.69% IWP 3.85% FLMVX 3.85% QUAYX 3.85% DEVLX 3.85% TINGX 19.23% TGVIX 23.08% ASYLX 15.38% CEMVX 11.54%"
tickers = re.findall(r'\b[A-Z]{2,5}\b', FA_comment)
numbers = re.findall(r'((\d{1,2}(\.\d{1,2})*))[%]?', FA_comment)
print(FA_comment)
print(tickers)
print(numbers

내가 얻는 결과는 다음과 같습니다 :

WPSGX 7.69% SVAIX 7.69% IWP 3.85% FLMVX 3.85% QUAYX 3.85% DEVLX 3.85% TINGX 19.23% TGVIX 23.08% ASYLX 15.38% CEMVX 11.54%
[u'WPSGX', u'SVAIX', u'IWP', u'FLMVX', u'QUAYX', u'DEVLX', u'TINGX', u'TGVIX', u'ASYLX', u'CEMVX']
[(u'7.69', u'7.69', u'.69'), (u'7.69', u'7.69', u'.69'), (u'3.85', u'3.85', u'.85'), (u'3.85', u'3.85', u'.85'), (u'3.85', u'3.85', u'.85'), (u'3.85', u'3.85', u'.85'), (u'19.23', u'19.23', u'.23'), (u'23.08', u'23.08', u'.08'), (u'15.38', u'15.38', u'.38'), (u'11.54', u'11.54', u'.54')]

다음은 얻고 싶은 결과입니다 :

[u'WPSGX', u'SVAIX', u'IWP', u'FLMVX', u'QUAYX', u'DEVLX', u'TINGX', u'TGVIX', u'ASYLX', u'CEMVX']
[u'7.69%', u'7.69%', u'3.85%', u'3.85%', u'3.85%', u'3.85%', u'19.23%', u'23.08', u'15.38%', u'11.54%']


  • 답변 # 1

    re.findall 사용  두 개의 캡처 그룹 (하나는 레이블 용이고 다른 하나는 백분율)입니다. 그런 다음 목록 이해를 사용하여 레이블/백분율에 대해 예상되는 1D 목록을 생성하십시오.

    FA_comment = "WPSGX 7.69% SVAIX 7.69% IWP 3.85% FLMVX 3.85% QUAYX 3.85% DEVLX 3.85% TINGX 19.23% TGVIX 23.08% ASYLX 15.38% CEMVX 11.54%"
    pcts = re.findall(r'\b([A-Z]+) (\d+(?:\.\d+)?%?(?!\S))', FA_comment)
    print([i[0] for i in pcts])
    print([i[1] for i in pcts])
    
    

    이것은 인쇄한다 :

    ['WPSGX', 'SVAIX', 'IWP', 'FLMVX', 'QUAYX', 'DEVLX', 'TINGX', 'TGVIX',
     'ASYLX', 'CEMVX']
    ['7.69%', '7.69%', '3.85%', '3.85%', '3.85%', '3.85%', '19.23%', '23.08%',
     '15.38%', '11.54%']
    
    

관련 자료

  • 이전 자바 스크립트 '네임 스페이스'및 jQuery AJAX
  • 다음 testing - Google Analytics에서 Internet Explorer의 쿼리 문자열 매개 변수를 확인하려면 어떻게합니까?