⊗pyPmREChS 40 of 129 menu

Python 정규 표현식의 문자 집합

문자 그룹 \d\w는 매우 유연하지 않습니다. 모든 글자를 찾되 숫자는 제외하기와 같은 간단한 작업조차 해결할 수 없습니다. 이러한 작업에는 '또는' 연산을 나타내는 대괄호를 사용해야 합니다.

대괄호는 내부에 나열된 문자 중 하나를 대체합니다. 예를 들어, 이렇게요: x[abc]x - 우리는 양쪽 끝에 문자 x가 있어야 하고, 그 사이에는 하나의 문자가 있어야 한다고 말하는 것입니다: 'a', 'b', 또는 'c'.

대괄호 뒤에는 반복 연산자를 쓸 수 있습니다. 예를 들어, 이렇게요: x[abc]+x - 우리는 x 사이에 'a', 'b', 'c' 문자가 어떤 조합으로든 여러 개 있을 수 있다고 말하는 것입니다.

문자를 나열할 뿐만 아니라 두 문자 사이에 하이픈을 사용하여 문자 그룹을 만들 수도 있습니다. 예를 들어, 이렇게요: [a-d] - 우리는 'a'부터 'd'까지의 모든 문자를 얻습니다.

예제를 통해 알아봅시다.

예제

이 예제에서 검색 패턴은 다음과 같습니다: ⁩x 사이에 'a'부터 'z'까지의 모든 문자:

<+Python+> txt = 'xax xbx xcx x@x' res = re.sub('x[a-z]x', '!', txt) print(res) <-python->

코드 실행 결과:

'! ! ! x@x'

예제

이 예제에서 검색 패턴은 다음과 같습니다: ⁩x 사이에 'a'부터 'k'까지의 모든 문자:

txt = 'xax xbx xmx x@x' res = re.sub('x[a-k]x', '!', txt) print(res)

코드 실행 결과:

'! ! xmx x@x'

예제

이 예제에서 검색 패턴은 다음과 같습니다: ⁩x 사이에 'A'부터 'Z'까지의 모든 문자:

txt = 'xax xBx xcx x@x' res = re.sub('x[A-Z]x', '!', txt) print(res)

코드 실행 결과:

'xax ! xcx x@x'

예제

이 예제에서 검색 패턴은 다음과 같습니다: ⁩x 사이에 0부터 9까지의 모든 숫자:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[0-9]x', '!', txt) print(res)

코드 실행 결과:

'xax ! ! ! x@x'

예제

이 예제에서 검색 패턴은 다음과 같습니다: ⁩x 사이에 3부터 7까지의 모든 숫자:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[3-7]x', '!', txt) print(res)

코드 실행 결과:

'xax x1x ! ! x@x'

예제

이 예제에서 검색 패턴은 다음과 같습니다: ⁩x 사이에 'a'부터 'z'까지의 모든 문자 또는 1부터 9까지의 모든 숫자:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[a-z1-9]x', '!', txt) print(res)

코드 실행 결과:

'! ! ! ! x@x'

예제

이 예제에서 검색 패턴은 다음과 같습니다: ⁩x 사이에 'a'부터 'z'까지의 모든 문자 또는 'A'부터 'Z'까지의 모든 문자:

txt = 'xax xBx xcx x5x x@x' res = re.sub('x[a-zA-Z]x', '!', txt) print(res)

코드 실행 결과:

'! ! ! x5x x@x'

예제

이 예제에서 검색 패턴은 다음과 같습니다: ⁩x 사이에 'a'부터 'z'까지의 모든 문자 또는 숫자 1, 2:

txt = 'xax xbx x1x x2x x3x' res = re.sub('x[a-z12]x', '!', txt) print(res)

코드 실행 결과:

'! ! ! ! x3x'

예제

이 예제에서 검색 패턴은 다음과 같습니다: ⁩x 사이에 'a'부터 'z'까지의 문자가 1개 이상:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]+x', '!', txt) print(res)

코드 실행 결과:

'xx ! ! ! x123x xa3x'

예제

문자 개수가 0개일 수도 있도록 만들어 봅시다:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]*x', '!', txt) print(res)

결과는 다음과 같습니다:

'! ! ! ! x123x xa3x'

예제

대괄호 안에는 이스케이프된 문자도 지정할 수 있습니다. 문자와 숫자가 0번 이상 반복되는 시퀀스를 찾아봅시다:

txt = 'xx x@x xadx xas12x xa3x' res = re.sub('x[a-z\d]*x', '!', txt) print(res)

코드 실행 결과:

'! x@x ! ! !'

예제

대괄호 자체를 지정해야 하는 경우에도 반드시 이스케이프해야 합니다:

txt = 'xx xrx xas[]x x3x' res = re.sub('x[a-z\[\]]*x', '!', txt) print(res)

코드 실행 결과:

'! ! ! x3x'

실습 문제

다음 문자열이 주어졌습니다:

txt = 'aba aea aca aza axa'

다음 패턴을 찾는 정규 표현식을 작성하세요: ⁩양쪽 끝에 문자 'a'가 있고, 그 사이에 문자 'b', 'e', 또는 'x'가 있는 경우.

다음 문자열이 주어졌습니다:

txt = 'a1a a3a a7a a9a aba'

다음 패턴을 찾는 정규 표현식을 작성하세요: ⁩양쪽 끝에 문자 'a'가 있고, 그 사이에 3부터 6까지의 숫자가 있는 경우.

다음 문자열이 주어졌습니다:

txt = 'aba aea afa aha aga'

다음 패턴을 찾는 정규 표현식을 작성하세요: ⁩양쪽 끝에 문자 'a'가 있고, 그 사이에 'a'부터 'g'까지의 문자가 있는 경우.

다음 문자열이 주어졌습니다:

txt = 'aba aea afa aha aga'

다음 패턴을 찾는 정규 표현식을 작성하세요: ⁩양쪽 끝에 문자 'a'가 있고, 그 사이에 'a'부터 'f'까지와 'j'부터 'z'까지의 문자가 있는 경우.

다음 문자열이 주어졌습니다:

txt = 'aAa aea aEa aJa a3a'

다음 패턴을 찾는 정규 표현식을 작성하세요: ⁩양쪽 끝에 문자 'a'가 있고, 그 사이에 'a'부터 'f'까지와 'A'부터 'D'까지의 문자가 있는 경우.

다음 문자열이 주어졌습니다:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

다음 패턴을 찾는 정규 표현식을 작성하세요: ⁩양쪽 끝에 문자 'a'가 있고, 그 사이에 소문자 라틴 문자가 있으며, 나머지는 건드리지 않는 경우.

다음 문자열이 주어졌습니다:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

다음 패턴을 찾는 정규 표현식을 작성하세요: ⁩양쪽 끝에 문자 'a'가 있고, 그 사이에 소문자 및 대문자 라틴 문자가 있으며, 나머지는 건드리지 않는 경우.

다음 문자열이 주어졌습니다:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

다음 패턴을 찾는 정규 표현식을 작성하세요: ⁩양쪽 끝에 문자 'a'가 있고, 그 사이에 소문자 라틴 문자와 숫자가 있으며, 나머지는 건드리지 않는 경우.

한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부