>  기사  >  백엔드 개발  >  Python의 정규식에 대한 자세한 설명

Python의 정규식에 대한 자세한 설명

小云云
小云云원래의
2017-12-18 15:05:402004검색


정규 표현식은 문자열 집합을 간결하게 표현하는 데 사용되는 표현식입니다. 이 글은 주로 Python의 정규 표현식에 대한 자세한 지식을 공유하는 데 도움이 되기를 바랍니다.

[^]비문자 집합, 단일 문자 제외 범위[^abc]는 a가 아니거나 b가 아니거나 c가 아닌<td><br></td>*+1 또는 이전 문자의 무제한 확장
Operator Explanation Instance
. 은 단일 문자를 나타냅니다.
[ ] 문자 세트, 단일 문자 값 범위 [abc ]는 a 또는 b 또는 c를 의미하고, [a-z]는 a에서 z까지의 단일 문자를 의미합니다. [abc]表示a或b或c; [a-z]表示a到z单个字符
[^ ] 非字符集,单个字符排除范围 [^abc]表示非a或非b或非c
* 前一个字符的0次或无限次扩展 abc*表示ab、abc、abcc、abccc...
+ 前一个字符的1次或无限次扩展 abc+表示abc、abcc、abccc...
? 前一个字符的0次或1次扩展 abc?表示ab、abc
| 左右表示任意一个 abc|def 表示abc或def
{m} 前一个字符的m次扩展 ab{2}表示abcc
{m,n} 前一个字符的m至n次扩展(含n) ab{1,2}表示abc、abcc
^ 匹配字符串开头 ^abc表示abc且在一个字符串的开头
$ 匹配字符串结尾 abc$表示abc且在一个字符串的结尾
( ) 分组标记,内部只能使用|操作符 (abc|def)表示abc或def
0 또는 이전 문자의 무제한 확장을 의미합니다 abc*ab, abc, abcc, abccc...

abc+abc, abcc, abccc...

를 의미합니다.

?

0 또는 이전 문자의 1 확장

abc?ab, abc

|

은 왼쪽 또는 오른쪽을 의미합니다. A

abc|defabc 또는 def


{m}

m배 이전 문자의 확장ab{2}는 <code>abccm에서 n까지의 이전 문자 확장을 나타냅니다(n 포함)ab{1,2}는 abc, abcc문자열의 시작 부분과 일치$(abc| def)abc 또는 def숫자, [0-9]w
{m,n}
^
^abc는 abc를 나타내며 문자열
문자열의 끝과 일치합니다. abc$는 abc를 의미하며 문자열의 끝에 있습니다.
( ) 그룹화 표시, 내부적으로 | 연산자만 사용할 수 있습니다.
d
🎜단어 문자와 동일함을 의미합니다. [A-Za-z0-9_]🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜위의 연산자에 익숙하다면 다음 예는 어렵지 않습니다. 🎜🎜1. 숫자만 입력할 수 있습니다: ^[0-9]*$🎜🎜2. n자리 숫자만 입력할 수 있습니다: ^d{n}$🎜🎜3. 입력됨: ^d {n,}$🎜🎜4. m~n 숫자만 입력할 수 있습니다: ^d{m,n}$🎜🎜5. 0으로 시작하고 0이 아닌 숫자만 입력할 수 있습니다: ^(0 |[1-9 ][0-9]*)$🎜🎜6. 소수점 이하 두 자리의 양수만 입력할 수 있습니다: ^[0-9]+(.[0-9]{2})?$ 🎜🎜7. 소수점 이하 1~3자리의 양수만 입력하세요: ^[0-9]+(.[0-9]{1,3})?$🎜🎜8. 정수: ^+?[ 1-9][0-9]*$🎜🎜🎜[Python3 정규 표현식]🎜🎜🎜🎜🎜Function🎜🎜Description🎜🎜🎜🎜🎜🎜re.match()🎜🎜에서 일치 문자열 A 패턴의 시작 위치 시작 위치가 성공적으로 일치하지 않으면 match()는 없음을 반환합니다. 🎜🎜🎜🎜re.search()🎜🎜전체 문자열을 스캔하고 첫 번째로 성공한 일치 항목을 반환합니다. 🎜🎜🎜🎜re.sub()🎜🎜는 문자열에서 정규 표현식과 일치하는 모든 하위 문자열을 바꾸고 대체된 문자열을 반환하는 데 사용됩니다.🎜🎜🎜🎜re.findall()🎜🎜목록에서 문자열 검색 양식 일치하는 모든 하위 문자열을 반환합니다🎜🎜🎜🎜re.split()🎜🎜정규식 일치 결과에 따라 문자열을 잘라내고 목록을 반환합니다🎜🎜🎜🎜re.finditer()🎜🎜문자열을 검색하고 반복 유형을 반환합니다. 일치 결과의 각 반복 요소는 일치 개체입니다🎜🎜🎜🎜
>>> match= re.findall(r&#39;[1-9]\d{5}&#39;,&#39;100081BIT  BIT10008676&#39;)>>> print(match)
[&#39;100081&#39;, &#39;100086&#39;]>>> match = re.split(r&#39;[1-9]\d{5}&#39;,&#39;100081BIT  BIT10008676&#39;)>>> match
[&#39;&#39;, &#39;BIT  BIT&#39;, &#39;76&#39;]>>> match = re.split(r&#39;[1-9]\d{5}&#39;,&#39;100081BIT  BIT10008676&#39;,maxsplit=1)>>> match
[&#39;&#39;, &#39;BIT  BIT10008676&#39;]

>>>for m in re.finditer(r&#39;[1-9]\d{5}&#39;,&#39;100081BIT  BIT10008676&#39;):       if m:
            print(m.group(0))    
100081100086

re.match와 re.search

re.match의 차이점은 문자열의 시작 부분과만 일치합니다. 문자열의 시작 부분이 정규 표현식과 일치하지 않으면 일치가 실패하고 re에서는 None을 반환합니다. 검색은 일치하는 항목이 발견될 때까지 전체 문자열과 일치합니다. [ ]


문자 집합, 단일 문자 값 범위

Python의 정규식에 대한 자세한 설명[abc]는 a 또는 b 또는 c를 의미합니다. [a-z]는 a에서 z까지의 단일 문자를 의미합니다.

[^ ]non- 문자 집합, 단일 문자 제외 범위[ ^abc]는 a가 아님, b가 아님, c가 아님*0 또는 이전 문자의 무제한 확장을 의미합니다abc*는 ab, abc, abcc, abccc...1 또는 이전 문자의 무제한 확장0 또는 이전 문자의 확장 1개abc?ab를 의미하고, abc|abc|defabc 또는 def를 나타냅니다. ab {2}은 이전 문자의 abcc

+
abc+을 의미합니다. >는 abc, abcc, abccc... . ?[abc]表示a或b或c; [a-z]表示a到z单个字符
[^ ] 非字符集,单个字符排除范围 [^abc]表示非a或非b或非c
* 前一个字符的0次或无限次扩展 abc*表示ab、abc、abcc、abccc...
+ 前一个字符的1次或无限次扩展 abc+表示abc、abcc、abccc...
? 前一个字符的0次或1次扩展 abc?表示ab、abc
| 左右表示任意一个 abc|def 表示abc或def
{m} 前一个字符的m次扩展 ab{2}表示abcc
{m,n} 前一个字符的m至n次扩展(含n) ab{1,2}表示abc、abcc
^ 匹配字符串开头 ^abc表示abc且在一个字符串的开头
$ 匹配字符串结尾 abc$表示abc且在一个字符串的结尾
( ) 分组标记,内部只能使用|操作符 (abc|def)表示abc或def

왼쪽과 오른쪽은 임의의 것을 나타냅니다
{m}이전 문자의 m배 확장

{m,n}

m에서 n까지의 확장을 의미합니다( n 포함)

ab{1,2 }abc, abcc

^

문자열의 시작 부분과 일치

^abc는 abc를 의미하며 문자열의 시작 부분에 있습니다

$


문자열의 끝 부분과 일치합니다

abc$는 abc를 의미하며 문자열의 끝 부분에 있습니다(abc|def)abc 또는 defw단어 문자와 동일, [A-Za-z0-9_]과 동일 예는 어렵지 않습니다. 1. 숫자만 입력할 수 있습니다: ^[0-9]*$2 n자리 숫자만 입력할 수 있습니다: ^d{n}$3. 숫자: ^d {n,}$4. m~n 숫자만 입력할 수 있습니다: ^d{m,n}$5. 0으로 시작하고 0이 아닌 숫자만 입력할 수 있습니다: ^(0 |[1-9 ][0-9]*)$6. 소수점 이하 두 자리의 양수만 입력할 수 있습니다: ^[0-9]+(.[0-9]{2})?$ 7. 소수점 이하 1~3자리의 양수만 입력하세요: ^[0-9]+(.[0-9]{1,3})?$8. 정수: ^+?[ 1-9][0-9]*$
( ) 그룹화 표시, | 연산자만 내부적으로 사용할 수 있습니다.
d 번호를 의미합니다. [0-9]

[Python3 정규식]


Python의 정규식에 대한 자세한 설명Function

Description

re.match()에서 일치 문자열 A 패턴의 시작 위치. 시작 위치가 성공적으로 일치하지 않으면 match()는 없음을 반환합니다.

re.search()

🎜전체 문자열을 스캔하고 첫 번째로 성공한 일치 항목을 반환합니다. 🎜🎜🎜🎜re.sub()🎜🎜는 문자열에서 정규 표현식과 일치하는 모든 하위 문자열을 바꾸고 대체된 문자열을 반환하는 데 사용됩니다.🎜🎜🎜🎜re.findall()🎜🎜목록에서 문자열 검색 양식 일치하는 모든 하위 문자열을 반환합니다. 🎜🎜🎜🎜re.split()🎜🎜 정규식 일치 결과에 따라 문자열을 분할하고 목록을 반환합니다.🎜🎜🎜🎜re.finditer()🎜🎜문자열을 검색하고 반복 유형을 반환합니다. 각 반복 요소는 일치 개체입니다🎜🎜🎜🎜
>>> match= re.findall(r&#39;[1-9]\d{5}&#39;,&#39;100081BIT  BIT10008676&#39;)>>> print(match)
[&#39;100081&#39;, &#39;100086&#39;]>>> match = re.split(r&#39;[1-9]\d{5}&#39;,&#39;100081BIT  BIT10008676&#39;)>>> match
[&#39;&#39;, &#39;BIT  BIT&#39;, &#39;76&#39;]>>> match = re.split(r&#39;[1-9]\d{5}&#39;,&#39;100081BIT  BIT10008676&#39;,maxsplit=1)>>> match
[&#39;&#39;, &#39;BIT  BIT10008676&#39;]

>>>for m in re.finditer(r&#39;[1-9]\d{5}&#39;,&#39;100081BIT  BIT10008676&#39;):       if m:
            print(m.group(0))    
100081100086
🎜re.match와 re.search🎜🎜re.match의 차이점은 문자열의 시작 부분이 일치하지 않는 경우에만 문자열의 시작 부분과 일치합니다. 정규식, 일치가 실패하면 함수는 None을 반환하고 re.search는 일치하는 항목을 찾을 때까지 전체 문자열을 일치시킵니다. 🎜🎜🎜🎜🎜🎜관련 추천: 🎜🎜🎜js 정규식 상세 설명에 대하여🎜🎜🎜🎜php 정규식 상세 설명_PHP 튜토리얼🎜🎜🎜🎜매우 중요한 php 정규식 상세 설명,php 정규식 상세 설명🎜🎜

위 내용은 Python의 정규식에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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