여러 공백으로 분할 된 복잡한 문자열

cog_n1t1v3

내가 해결하려는 문제 :

s = """X8 ifInDiscards=14308c X8 ifOutDiscards=133796c"""
s1 = """X3 InRXBytes=1257890123 X2 OutRXBytes=871625343 X5 OutRXBytes=71625343"""

위의 두 문자열을 예로 들어 보겠습니다. 각 문자열을 별도의 부분으로 나누고 싶습니다.

문자열 s의 경우

part1 = '''X8 ifInDiscards=14308c'''
part2 = '''X8 ifOutDiscards=133796c'''

문자열 s1의 경우

part1 = '''X3 InRXBytes= 1257890123'''
part2 = '''X2 OutRXBytes= 871625343'''
part3 = '''X5 OutRXBytes= 71625343'''

따라서 위의 두 문자열 예에서 볼 수 있듯이 분할 할 문자열 형식은 다음과 같습니다.

'''metric1=value1 metric2=value2....metricN=valueN'''

위의 예와 같이 메트릭 이름에 공백이있을 수 있습니다.

지금까지 이것이 내가 운없이 시도한 것입니다.

>>> s = """X8 ifInDiscards=14308c X8 ifOutDiscards=133796c"""
>>>
>>>
>>>
>>> s.split('=')
['X8 ifInDiscards', '14308c X8 ifOutDiscards', '133796c']
>>>

문제는 가장 효율적인 방법으로 문자열을 어떻게 분할합니까? 운없이 시도한 또 하나의 접근법이 있습니다.

>>> s 'X8 ifInDiscards=14308c X8 ifOutDiscards=133796c' 
>>> pattern = r'''[0-9a-zA-Z]?=[0-9a-zA-Z]? [0-9a-zA-Z]?=[0-9a-zA-Z]?''' 
>>> re.search(pattern, s) 

메트릭 이름은 가변 길이 일 수 있으며 여러 공백을 포함 할 수 있습니다 ....

마지막 편집 : 다음은 문자열 's'에만 작동하지만 문자열 's1'에는 작동하지 않는 것으로 보이는 최종 접근 방식입니다.이 작업을 수행하는 더 좋은 방법이 있는지 알고 싶습니다.

>>> pattern = r'''([0-9a-zA-Z ].*?=[0-9a-zA-Z ].*?) ([0-9a-zA-Z ].*?=[0-9a-zA-Z ].*)'''
>>> s
'X8 ifInDiscards=14308c X8 ifOutDiscards=133796c'
>>> re.search(pattern, s).groups()
('X8 ifInDiscards=14308c', 'X8 ifOutDiscards=133796c')
바 너트

의 결과를 보면 s.split('=')각 값 N-1 다음에 메트릭 N이 있음을 알 수 있습니다. 그리고 값은 공백을 허용하지 않지만 행렬 이름은 허용하므로 각 요소를 다음으로 분할하는 방법은 모호하지 않습니다. 가치와 측정 기준이 맞죠? 따라서 값 목록을 하나씩 이동하고 메트릭 목록으로 압축하면됩니다. 엣지 케이스를 염두에 두십시오 (첫 번째 케이스는 값이없고 마지막 케이스는 메트릭이 없음).이를 매우 쉽게 작성할 수 있어야합니다.

압축을 이해하지 못하는 경우 다음과 같이 명시 적으로 수행 할 수도 있습니다.

d = {}
for i, part in enumerate(s1.split('=')):
    if i == 0:
        metric = part
    else:
        d[metric], _, metric = part.partition(' ')

하지만 쉬운 방법을 알아 내고 막히는 경우 도움을 요청하는 것이 좋습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

목록에 공백으로 구분 된 문자열 열 복사

분류에서Dev

변수에서 공백으로 구분 된 여러 값에 문자열 추가

분류에서Dev

여러 문자열이있는 필드에서 영숫자 공백으로 구분 된 문자열 검색 (Lucene)

분류에서Dev

Python을 사용하여 공백으로 구분 된 두 문자열의 고유 한 목록 요소 계산

분류에서Dev

Python을 사용하여 공백으로 구분 된 두 문자열의 고유 한 목록 요소 계산

분류에서Dev

여러 문자로 분할 된 Python 문자열

분류에서Dev

공백으로 구분 된 문자열을 여러 변수로 분리하려면 어떻게합니까?

분류에서Dev

복잡한 문자열을 여러 구분 기호로 여러 번 배열로 변환

분류에서Dev

길이가 정의 된 공백으로 문자열 분할

분류에서Dev

아무것도 또는 공백으로 구분 된 경우 정규식의 여러 문자열 연결

분류에서Dev

R 공백으로 구분 된 문자열 데이터를 열로 분할

분류에서Dev

정규식을 사용하여 복잡한 구분 기호로 문자열을 어떻게 분할합니까?

분류에서Dev

한 번만 여러 구분 기호로 문자열 분할

분류에서Dev

R은 다른 수의 공백으로 구분 된 문자 열 분할

분류에서Dev

공백에 문자열을 배열로 분할하지만 한 단어로 된 문자열이 있으면 어떻게 될까요?

분류에서Dev

조인으로 복잡한 선택에서 mysql의 공통 열로 통합 된 여러 행을 얻는 방법

분류에서Dev

다양한 공백이 포함 된 문자열 분할

분류에서Dev

여러 문자로 문자열 분할

분류에서Dev

여러 문자로 문자열 분할

분류에서Dev

매우 복잡한 문자열을 R로 분할

분류에서Dev

자바 스크립트는 공백으로 자동 완성을 사용하여 동일한 부분으로 문자열을 분할합니다.

분류에서Dev

공백으로 구분 된 문자열 열 정렬

분류에서Dev

Javascript를 사용하여 공백으로 구분 된 여러 줄 문자열을 json으로 변환하는 방법은 무엇입니까?

분류에서Dev

복잡한 여러 단락 문서에서 단어를 추출하여 여러 줄 쉼표로 구분 된 파일로 출력

분류에서Dev

여러 구분 기호로 정의 된 문자열 부분을 R에서 여러 변수로 분할

분류에서Dev

문자열을 공백으로 구분 된 정수로 변환

분류에서Dev

Select 문 'AS'에서 공백으로 구분 된 여러 단어가 포함 된 문자열을 사용하면 단점이 있습니까?

분류에서Dev

여러 구분 기호로 문자열 분할, 반복 구분 기호 무시

분류에서Dev

Bash에서 여러 문자 구분 기호로 분할 된 문자열의 특정 부분 제거

Related 관련 기사

  1. 1

    목록에 공백으로 구분 된 문자열 열 복사

  2. 2

    변수에서 공백으로 구분 된 여러 값에 문자열 추가

  3. 3

    여러 문자열이있는 필드에서 영숫자 공백으로 구분 된 문자열 검색 (Lucene)

  4. 4

    Python을 사용하여 공백으로 구분 된 두 문자열의 고유 한 목록 요소 계산

  5. 5

    Python을 사용하여 공백으로 구분 된 두 문자열의 고유 한 목록 요소 계산

  6. 6

    여러 문자로 분할 된 Python 문자열

  7. 7

    공백으로 구분 된 문자열을 여러 변수로 분리하려면 어떻게합니까?

  8. 8

    복잡한 문자열을 여러 구분 기호로 여러 번 배열로 변환

  9. 9

    길이가 정의 된 공백으로 문자열 분할

  10. 10

    아무것도 또는 공백으로 구분 된 경우 정규식의 여러 문자열 연결

  11. 11

    R 공백으로 구분 된 문자열 데이터를 열로 분할

  12. 12

    정규식을 사용하여 복잡한 구분 기호로 문자열을 어떻게 분할합니까?

  13. 13

    한 번만 여러 구분 기호로 문자열 분할

  14. 14

    R은 다른 수의 공백으로 구분 된 문자 열 분할

  15. 15

    공백에 문자열을 배열로 분할하지만 한 단어로 된 문자열이 있으면 어떻게 될까요?

  16. 16

    조인으로 복잡한 선택에서 mysql의 공통 열로 통합 된 여러 행을 얻는 방법

  17. 17

    다양한 공백이 포함 된 문자열 분할

  18. 18

    여러 문자로 문자열 분할

  19. 19

    여러 문자로 문자열 분할

  20. 20

    매우 복잡한 문자열을 R로 분할

  21. 21

    자바 스크립트는 공백으로 자동 완성을 사용하여 동일한 부분으로 문자열을 분할합니다.

  22. 22

    공백으로 구분 된 문자열 열 정렬

  23. 23

    Javascript를 사용하여 공백으로 구분 된 여러 줄 문자열을 json으로 변환하는 방법은 무엇입니까?

  24. 24

    복잡한 여러 단락 문서에서 단어를 추출하여 여러 줄 쉼표로 구분 된 파일로 출력

  25. 25

    여러 구분 기호로 정의 된 문자열 부분을 R에서 여러 변수로 분할

  26. 26

    문자열을 공백으로 구분 된 정수로 변환

  27. 27

    Select 문 'AS'에서 공백으로 구분 된 여러 단어가 포함 된 문자열을 사용하면 단점이 있습니까?

  28. 28

    여러 구분 기호로 문자열 분할, 반복 구분 기호 무시

  29. 29

    Bash에서 여러 문자 구분 기호로 분할 된 문자열의 특정 부분 제거

뜨겁다태그

보관