>  기사  >  백엔드 개발  >  기본 원칙은 일련의 특수 문자와 구문을 사용하여 텍스트 데이터를 일치시키고 조작하는 것입니다. 정규식에는 일반적으로 일치시킬 텍스트 패턴을 설명하는 패턴 문자열과 결과 방법 및 결과를 제어하는 ​​하나 이상의 특수 문자 및 구문이 포함됩니다. Python의 정규 표현식은 일반적으로 re 모듈을 사용하여 구현됩니다.

기본 원칙은 일련의 특수 문자와 구문을 사용하여 텍스트 데이터를 일치시키고 조작하는 것입니다. 정규식에는 일반적으로 일치시킬 텍스트 패턴을 설명하는 패턴 문자열과 결과 방법 및 결과를 제어하는 ​​하나 이상의 특수 문자 및 구문이 포함됩니다. Python의 정규 표현식은 일반적으로 re 모듈을 사용하여 구현됩니다.

WBOY
WBOY앞으로
2023-05-10 09:40:141252검색

    정규 표현식이란 무엇인가요?

    정규식이라고도 하는 정규식(영어: 정규식, 코드에서 regex, regexp 또는 RE로 약칭하는 경우가 많음)은 컴퓨터 과학의 개념입니다. 정규식은 특정 패턴과 일치하는 텍스트를 검색하고 바꾸는 데 자주 사용됩니다. 많은 프로그래밍 언어는 정규식을 사용한 문자열 조작을 지원합니다. 예를 들어 Perl에는 강력한 정규식 엔진이 내장되어 있습니다. 정규식의 개념은 원래 Unix의 도구 소프트웨어에 의해 대중화되었습니다. 정규식은 사전 정의된 특정 문자와 이러한 특정 문자의 조합을 사용하는 문자열(일반 문자(예: a~z 사이의 문자) 및 특수 문자("메타문자"라고 함) 포함)에서 작동하는 논리식입니다. 문자는 "규칙 문자열"을 형성합니다. 이 "규칙 문자열"은 문자열에 대한 필터링 논리를 표현하는 데 사용됩니다. 정규식은 텍스트를 검색할 때 일치시킬 하나 이상의 문자열을 설명하는 텍스트 패턴입니다.

    1. 예제 소개

    말도 안 되는 말을 많이 했는데, 여전히 헷갈릴 수 있습니다. 예제를 통해 설명하겠습니다. 먼저 단락 텍스트를 입력합니다.

    안녕하세요, 제 이름은 Tina이고 제 전화번호는 123456이고 제 웹사이트는 http://tina.com입니다.

                                   [a-zA-z]+://[^\s]*

    텍스트에 있는 URL인 웹 링크를 얻을 수 있지 않나요? 놀라운?

    자체 매칭 규칙이 있기 때문인데, 그 중 일부는 다음과 같습니다.

    Pattern Description
    . 모든 문자
    * 0개 이상의 표현식
    + 하나 이상의 표현식

    더 많은 매칭을 확인할 수 있습니다 스스로 규칙을 정합니다.

    ?,*,+,d,w 는 모두 동일한 문자입니다.

    ?는 길이 {0,1}

    *과 일치하는 길이 {0,}

    과 같습니다.

    +는 일치하는 길이 {1,}

    d와 동일합니다. d는 [0-9]

    D와 동일합니다. [^0-9]

    w는 [A - Za-Z_0-9]

    W는 [^a-Za-Z_0-9]

    2.match ()

    여기서는 일반적으로 사용되는 매칭 방법 & mdash & mdash; () 에 일치시킬 문자열과 정규식을 전달하면 정규식이 문자열과 일치하는지 확인할 수 있습니다.

    매칭 타겟

    res = re.match('hello\s(\d+)sword')

    그리디 매칭

    res = re.match('hello.*(\d+)sword')

    3.findall()

    이것이 우리가 가장 많이 사용하는 것인데, 어떻게 사용되는지 살펴보겠습니다.

    import re
     
    useData = str(input('请输入字符串数据:'))
     
    '''
    匹配字符串中的数字,+是匹配前面的子表达式一次或多次
    '''
    digital = re.findall('\d+',useData)
     
    print(digital)

    실행 결과를 살펴보겠습니다

    기본 원칙은 일련의 특수 문자와 구문을 사용하여 텍스트 데이터를 일치시키고 조작하는 것입니다. 정규식에는 일반적으로 일치시킬 텍스트 패턴을 설명하는 패턴 문자열과 결과 방법 및 결과를 제어하는 ​​하나 이상의 특수 문자 및 구문이 포함됩니다. Python의 정규 표현식은 일반적으로 re 모듈을 사용하여 구현됩니다.

    findall() 함수는 일치하는 모든 문자열을 반환하며 반환값의 데이터 타입은 리스트입니다.

    공통 기호

    정규 표현식의 공통 기호에 대해 이야기해 보겠습니다.

    "." 문자는 모든 단일 문자와 일치합니다.

    "" 문자는 이스케이프 문자입니다.

    "[…]"은 문자 집합입니다.

    "(.*?)"는 Python 크롤러에서 가장 일반적으로 사용되는 문자로 탐욕 알고리즘이라고 하며 모든 문자와 일치할 수 있습니다.

    아래 샘플 코드를 살펴보겠습니다.

    import re
     
    a=‘xxixxjshdxxlovexxsfhxxpythonxx'
     
    data=re.findall(‘xx(.*?)xx')
     
    print(data)

    실행해서 효과를 확인해 볼까요?

    실행 결과
    [‘I’,‘love’,‘python’]

    특수 문자

    소위 특수 문자는 runoo*b, simple과 같은 특별한 의미를 지닌 문자입니다. 이는 모든 문자열을 의미함을 의미합니다. 문자열에서 * 기호를 찾으려면 *를 이스케이프해야 합니다. 즉, 기호 앞에 a를 추가해야 합니다. runo*ob은 문자열 runo*ob과 일치합니다.

    많은 메타 문자를 일치시키려면 특별한 처리가 필요합니다. 이러한 특수 문자를 일치시키려면 먼저 문자를 "이스케이프"해야 합니다. 즉, 문자 앞에 백슬래시 문자를 와야 합니다. 다음 표에는 정규식의 특수 문자가 나열되어 있습니다.

    특수 문자 설명
    $

    입력 문자열의 끝 위치와 일치합니다. RegExp 개체의 Multiline 속성이 설정된 경우 $는 ‘n’ 또는 ‘r’과도 일치합니다. $ 문자 자체를 일치시키려면 $를 사용하십시오.

    () 은 하위 표현식의 시작과 끝을 표시합니다. 나중에 사용하기 위해 하위 표현식을 얻을 수 있습니다. 이러한 문자를 일치시키려면 ( 및 )를 사용하십시오.
    * 이전 하위 표현식과 0회 이상 일치합니다. * 문자를 일치시키려면 *를 사용하십시오.
    + 은 이전 하위 표현식과 한 번 이상 일치합니다. + 문자를 일치시키려면 +를 사용하십시오.
    . 은 개행 문자 n을 제외한 모든 단일 문자와 일치합니다. .

     概念说了一大堆,大家可能也记不住,我直接说几个案例,大家就能明白其他的道理。

    这是某网的HTML,部分片段如下:

    <span class=“price”>§<i>123</i></span>
     
    <span class=“price”>§<i>133</i></span>
     
    <span class=“price”>§<i>156</i></span>
     
    <span class=“price”>§<i>189</i></span>

       大家会发现只有中间的一段不一样,而不一样的数据就是我们想要的,我们怎么用正则表达式提取出来呢.

    <span class=“price”>§<i>(.*?)</i></span>

    就可以了,我们看看效果吧。

    123
    133
    156
    189

    위 내용은 기본 원칙은 일련의 특수 문자와 구문을 사용하여 텍스트 데이터를 일치시키고 조작하는 것입니다. 정규식에는 일반적으로 일치시킬 텍스트 패턴을 설명하는 패턴 문자열과 결과 방법 및 결과를 제어하는 ​​하나 이상의 특수 문자 및 구문이 포함됩니다. Python의 정규 표현식은 일반적으로 re 모듈을 사용하여 구현됩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제