다음 문자열을 고려하여 목록의 여러 문자열에서 숫자 데이터를 추출하고 싶습니다.Python에서 regex를 사용하여 문자열에서 숫자 데이터 추출하기
'\ n 내역 : \ r \ n \ t \ r \ n \ t \ t \ t \ t \ t \ t20 \ r \ n \ t \ t \ t \ t \ t \ \ r \ n를 t \ t \ t \ t \ NVIEWS : 20,087 \ nRating0/5 \ n '
I 즉, 뷰의 수치 데이터를 추출하고자, 20,087 및 그 답장을위한 좋은 보유 즉,
나는 다음과 같은 출력을 얻을 다음을 수행 정규식 코드를 사용하여 파이썬
view = re.findall("\W*Views*:\D*(\d+)*,(\d+)", str(string_name))
replies = re.findall("\W*Views*:\D*(\d+)", str(string_name))
를 사용 (20);
전망 : [('20', '087')]
응답 : [ '20'] 나는에 대한 동일한 코드를 실행하려고하면
그러나이 문제가 발생 다음의 캐릭터 라인.
'\ n 내역 : \ r \ n \ t \ r \ n \ t \ t \ t \ t \ t \ t20 \ r \ n \ t \ t \ t \ t \ t \ r \ n \ t \ t \ t \ t \ n보기 : 208 \ nRating0/5 \ n '
실제로는 원하는 목록이 아닙니다. 또한, 나는 34 개의 다른 문자열 목록을 찾기 위해 모든 것을 하나의 루프로 돌린다.
views = []
replies = []
for data in data_container:
statistics = data.find("ul", class_ = 'threadstats')
view = re.findall("\W*Views*:\D*(\d+)*,(\d+)", str(statistics))
views.append(view)
repl = re.findall("\W*Replies*:\D*(\d+)", str(statistics))
replies.append(repl)
그래서 루프를 실행할 때 다음과 같은 결과가 표시됩니다. 이는 내가 찾고있는 것이 아닙니다 !!
조회수 : [[('20', '087')] [('44', '467')], (('6', '975' [], [], [], [], [], [], [], [], [], [] ], [], [], [], [], [], [], [], [], [], [] [] []]
2 자리 숫자로 구성된 숫자 데이터가 누락되었습니다. 어떤 도움이라도 대단히 감사 할 것입니다.
https://ideone.com/RwfXKS을보십시오. 첫 번째 경우에 대해서는 잘 모르겠다.'views : [('20', '087')]'또는'views : ['20, 087 ']'가 필요합니까? –
보기로보기 : ['20, 087 '] –
다음 [내 대답] (https://stackoverflow.com/a/47177955/3832970)을 참조하십시오. 다른 답변은 기본적으로 작동하지 않지만 원할 경우 "시도"할 수 있습니다. 실제로 * 사용할 수 * 내 솔루션, 필요가 없습니다 "시도". –