>  기사  >  백엔드 개발  >  컨테이너 오케스트레이션을 위해 Python 정규식을 사용하는 방법

컨테이너 오케스트레이션을 위해 Python 정규식을 사용하는 방법

PHPz
PHPz원래의
2023-06-22 09:16:521248검색

컨테이너 오케스트레이션에서는 일부 정보를 필터링, 일치, 교체해야 하는 경우가 많습니다. Python은 이러한 작업을 완료하는 데 도움이 되는 강력한 도구인 정규식을 제공합니다. 이 문서에서는 정규식에 대한 기본 지식, Python re 모듈 사용 방법, 몇 가지 일반적인 정규식 애플리케이션을 포함하여 컨테이너 오케스트레이션에 Python 정규식을 사용하는 방법을 소개합니다.

1. 정규식의 기본 지식

정규식(Regular Expression)은 문자열 유형의 구조를 설명하는 데 사용되는 텍스트 패턴을 말합니다. Python에서는 re 모듈을 사용하여 정규식을 처리할 수 있습니다. 정규 표현식은 다양한 문자로 구성되며 그 중 일부는 다음과 같이 특별한 의미를 갖습니다.

. 개행 문자를 제외한 모든 문자와 일치합니다.
^ 문자열의 시작 부분과 일치합니다.
$ 문자열의 끝 부분과 일치합니다.

  • 이전 항목과 일치합니다. 이전 항목과 일치합니다. 0개 이상의 문자와 일치
  • 앞의 문자와 1회 이상 일치
    ? 앞의 문자와 0회 또는 1회 일치
    [] 대괄호로 묶인 모든 문자와 일치
    | 두 개 이상의 표현식과 일치

다음 중 하나 위의 일반적으로 사용되는 특수 문자 외에도 필요에 따라 사용할 수 있는 다른 특수 문자도 많이 있습니다.

2. Python re 모듈 사용 방법

Python의 re 모듈은 정규식을 사용하는 일련의 함수를 제공합니다. 그 중 가장 일반적인 함수는 re.findall(pattern, string)과 re.sub(pattern, repl, string)이다.

re.findall(pattern, string) 함수는 문자열에서 정규식과 일치하는 모든 하위 문자열을 찾아 목록을 반환하는 데 사용됩니다. 예를 들어 문자열에서 짝수로 끝나는 모든 숫자를 찾으려면 다음 코드를 사용할 수 있습니다.

import re
text = '123 456 7890 23 45 6'
pattern = r'd*[02468]'
result = re.findall(pattern, text)
print(result)

출력 결과는 다음과 같습니다.

['456', '7890', '6']

re.sub(pattern, repl, string) 함수가 사용됩니다. 문자열의 정규식과 일치하려면 표현식의 하위 문자열을 지정된 문자열로 바꾸고 대체된 문자열을 반환합니다. 예를 들어 문자열의 모든 공백을 하이픈 "-"으로 바꾸려면 다음 코드를 사용할 수 있습니다.

import re
text = 'hello world'
pattern = r's'
repl = '-'
result = re.sub(pattern, repl, text)
print(result)

출력 결과는 다음과 같습니다.

'hello-world'

3. 일반적인 정규 표현식 애플리케이션

  1. 컨테이너 이름 찾기

Docker에서 컨테이너 이름은 "/redis"와 같이 "/"로 시작하는 경우가 많습니다. 다음 정규식을 사용하여 검색할 수 있습니다.

import re
text = '172.17.0.2 - - [15/May/2019:09:58:20 +0800] "GET /redis HTTP/1.1" 200 9876'
pattern = r'(?<=GETs)S+'
result = re.findall(pattern, text)
print(result)

출력 결과는 다음과 같습니다.

['/redis']

그 중 정규식 "(?<=GETs)S+"는 "GET"으로 시작하는 단어와 일치한다는 의미입니다. 뒤에 공백이 있음) 비어 있지 않은 문자열입니다.

  1. 컨테이너 IP 주소 찾기

Docker에서 컨테이너 IP 주소는 일반적으로 "172"로 시작합니다. 다음 정규식을 사용하여 검색할 수 있습니다.

import re
text = '172.17.0.2 - - [15/May/2019:09:58:20 +0800] "GET /redis HTTP/1.1" 200 9876'
pattern = r'd{1,3}.d{1,3}.d{1,3}.d{1,3}'
result = re.findall(pattern, text)
print(result)

출력 결과는 다음과 같습니다.

['172.17.0.2']

여기서 정규식 "d{1,3}.d{1,3}.d{1,3}.d{ 1 ,3}'은 IP 주소 범위가 일치함을 의미합니다.

  1. 컨테이너 이름 바꾸기

Docker에서는 컨테이너 이름을 바꿔야 하는 경우가 많습니다. 다음 정규식을 사용하여 컨테이너 이름을 바꿀 수 있습니다.

import re
text = 'docker run -d --name redis01 redis'
pattern = r'--namesS+'
repl = '--name new_redis'
result = re.sub(pattern, repl, text)
print(result)

출력 결과는 다음과 같습니다.

'docker run -d --name new_redis redis'

그 중 정규식 "--namesS+"는 "--name"으로 시작하는 단락을 일치시키는 것을 의미합니다. 뒤에 공백이 있음) 비어 있지 않은 문자열은 대체될 ​​문자열을 나타냅니다.

요약

Python 정규 표현식은 컨테이너 오케스트레이션에서 매우 일반적인 기술로, 일부 정보를 필터링하고 일치시키고 바꾸는 데 도움이 될 수 있습니다. 이 기사에서는 Python 정규식에 대한 기본 지식, re 모듈 사용 방법 및 몇 가지 일반적인 정규식 애플리케이션을 소개합니다. 컨테이너 오케스트레이션에 관한 모든 사람의 작업에 도움이 되기를 바랍니다.

위 내용은 컨테이너 오케스트레이션을 위해 Python 정규식을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.