"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 정규식을 사용하여 문자열에서 부동 소수점 값을 추출하는 방법은 무엇입니까?

정규식을 사용하여 문자열에서 부동 소수점 값을 추출하는 방법은 무엇입니까?

2024-11-09에 게시됨
검색:493

How Can Regular Expressions Be Used to Extract Floating-Point Values from Strings?

정규 표현식을 사용하여 문자열에서 부동 소수점 값 추출

문자열에서 double 값을 추출하는 작업을 고려해보세요. 정규 표현식을 사용하여 이를 달성하려면 다음 단계가 필요합니다.

  1. 정규 표현식 구성:

    import re
    
    pattr = re.compile(???)
    x = pattr.match("4.5")
  2. Perl 호환 정규 표현식 사용:
    부동 소수점 추출을 위한 Perl 문서의 적합한 정규 표현식 값은 다음과 같습니다:

    re_float = re.compile("""(?x)
    ^
       [ -]?\ *      # an optional sign and space
       (             # integers or f.p. mantissas
           \d        # start with a ...
           (           # ? takes care of integers
               \.\d* # mantissa a.b or a.
           )?
          |\.\d      # mantissa .b
       )
       ([eE][ -]?\d )?  # optionally match an exponent
    $""")
  3. 일치 항목 찾기 및 검색:
    이중 값을 추출하려면 컴파일된 정규 표현식을 원하는 문자열에 적용합니다:

    m = re_float.match("4.5")
    print(m.group(0))

    이 결과는 다음과 같습니다:

    4.5
  4. 문자열에서 여러 값 추출:
    더 큰 문자열에서 여러 부동 소수점 값을 추출하려면 findall() 메서드를 사용합니다:

    s = """4.5 abc -4.5 abc - 4.5 abc   .1e10 abc . abc 1.01e-2 abc 
        1.01e-.2 abc 123 abc .123"""
    print(re.findall(r"[ -]? *(?:\d (?:\.\d*)?|\.\d )(?:[eE][ -]?\d )?", s))

    다음을 포함하여 추출된 값 목록을 반환합니다:

    ['4.5', '-4.5', '- 4.5', '  .1e10', ' 1.01e-2', '       1.01', '-.2', ' 123', ' .123']
릴리스 선언문 이 글은 1729482499에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3