문자 집합

좋아요, 위의 예를 통해 우리는 Python의 정규식에 대한 예비적인 이해를 얻었습니다. 정규식의 규칙은 무엇이며 문자는 무엇을 의미합니까?

사실 이에 대해 걱정할 필요가 없습니다. 해당 정규식 규칙 목록은 이 장의 뒷부분에서 제공되며 이러한 내용은 인터넷의 Google에서 쉽게 찾을 수 있습니다. 그럼 이제 정규식에 대한 이해를 더욱 심화시키고, 정규식의 문자 집합에 대해 알아보겠습니다.

문자 집합은 대괄호 "[]" 쌍으로 묶인 문자 집합입니다. 문자 세트를 사용하면 여러 문자 중 하나를 일치시킬 수 있습니다.

예를 들어 C[ET]O를 사용하여 CEO 또는 CTO를 일치시키는 경우, 즉 [ET]는 E 또는 T를 나타냅니다. 위에서 언급한 [a-z]와 마찬가지로 모든 소문자 중 하나입니다. 여기서는 하이픈 "-"을 사용하여 연속된 문자의 문자 범위를 정의합니다. 물론 이와 같이 작성하면 단일 16진수와 일치하며 대소문자를 구분하지 않는 [0-9a-fA-F]와 같은 여러 문자 범위가 포함될 수 있습니다. 문자 및 범위 정의의 순서는 일치 결과에 영향을 주지 않습니다.

사실 너무 많이 말했지만, 문자 집합에서 대괄호 "[]" 쌍 사이의 문자 관계가 or 관계임을 증명하고 싶습니다. 예를 들어 보겠습니다.

import re
a = 'uav,ubv,ucv,uwv,uzv,ucv,uov'
# 字符集
# 取 u 和 v 中间是 a 或 b 或 c 的字符
findall = re.findall('u[abc]v', a)
print(findall)
# 如果是连续的字母,数字可以使用 - 来代替
l = re.findall('u[a-c]v', a)
print(l)
# 取 u 和 v 中间不是 a 或 b 或 c 的字符
re_findall = re.findall('u[^abc]v', a)
print(re_findall)
输出的结果:
['uav', 'ubv', 'ucv', 'ucv']
['uav', 'ubv', 'ucv', 'ucv']
['uwv', 'uzv', 'uov']

예제에서는 부정 문자 집합이 사용되었습니다. 즉, 왼쪽 대괄호 "[" 뒤에 꺾쇠 괄호 "^"가 오면 문자 집합이 반전됩니다. 한 가지 기억해야 할 점은 부정 문자 집합이 단일 문자와 일치해야 한다는 것입니다. 예를 들어, q[^u]는 u가 따라오지 않고 q와 일치한다는 의미는 아닙니다. 이는 q와 u가 아닌 문자가 뒤따르는 것을 의미합니다. 위 예의 출력 결과를 비교하면 구체적인 내용을 이해할 수 있습니다.

우리 모두는 정규식 자체가 모든 숫자와 일치하는 d와 같은 일부 규칙을 정의한다는 것을 알고 있습니다. 실제로 이는 [0-9]와 동일하며, 이를 a 형식으로 설명합니다. 문자 집합입니다.

import re
a = 'uav_ubv_ucv_uwv_uzv_ucv_uov&123-456-789'
# 概括字符集
# \d 相当于 [0-9] ,匹配所有数字字符
# \D 相当于 [^0-9] , 匹配所有非数字字符
findall1 = re.findall('\d', a)
findall2 = re.findall('[0-9]', a)
findall3 = re.findall('\D', a)
findall4 = re.findall('[^0-9]', a)
print(findall1)
print(findall2)
print(findall3)
print(findall4)
# \w 匹配包括下划线的任何单词字符,等价于 [A-Za-z0-9_]
findall5 = re.findall('\w', a)
findall6 = re.findall('[A-Za-z0-9_]', a)
print(findall5)
print(findall6)

출력 결과:

['1', '2', '3', '4', '5', '6', '7', '8', '9']
['1', '2', '3', '4', '5', '6', '7', '8', '9']
['u', 'a', 'v', '_', 'u', 'b', 'v', '_', 'u', 'c', 'v', '_', 'u', 'w', 'v', '_', 'u', 'z', 'v', '_', 'u', 'c', 'v', '_', 'u', 'o', 'v', '&', '-', '-']
['u', 'a', 'v', '_', 'u', 'b', 'v', '_', 'u', 'c', 'v', '_', 'u', 'w', 'v', '_', 'u', 'z', 'v', '_', 'u', 'c', 'v', '_', 'u', 'o', 'v', '&', '-', '-']
['u', 'a', 'v', '_', 'u', 'b', 'v', '_', 'u', 'c', 'v', '_', 'u', 'w', 'v', '_', 'u', 'z', 'v', '_', 'u', 'c', 'v', '_', 'u', 'o', 'v', '1', '2', '3', '4', '5', '6', '7', '8', '9']
['u', 'a', 'v', '_', 'u', 'b', 'v', '_', 'u', 'c', 'v', '_', 'u', 'w', 'v', '_', 'u', 'z', 'v', '_', 'u', 'c', 'v', '_


지속적인 학습
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~