홈페이지 » 코딩 » 정규 표현식에 대한 초보자 안내서 (Regex)

    정규 표현식에 대한 초보자 안내서 (Regex)

    정규 표현식은 문자열에서 검색 할 수있는 패턴을 형성하는 문자 세트입니다. 정규 표현식은 다음 용도로 사용할 수 있습니다. 확인 신용 카드 번호를 확인하는 등 수색 복잡한 텍스트 일치를 통해, 그리고 일치하는 텍스트 바꾸기 다른 문자열. 또한 여러 언어를 지원하므로 한 번 배우고 여러 프로그래밍 언어에서 사용할 수 있습니다..

    나는 소수의 사람들이 정규식을 처음 보았을 때 그것을 완전히 무시한 것을 보았다. 나는 그들을 비난하지 않는다. 정규 표현식의 구문은 복잡하고 명령 행 언어와 마찬가지로 많은 악조건을 만듭니다. 그러나 모든 새로운 것은 무서워서 처음에 배우는 것이 불가능 해 보입니다. 그래서, Horatius의 말을 빌리 자면 이것을 말할 것입니다. 시작하고, 대담하고, 합법적이되도록합시다..

    Regex 정보

    Regex는 신경 과학 및 수학에 뿌리를두고 있으며 텍스트 검색을 위해 QED 텍스트 편집기에서 Ken Thompson이 프로그래밍 한 1968 년에만 구현되었습니다. 이제 Perl, Java, Python, Ruby 및 JavaScript와 같은 많은 프로그래밍 언어의 일부가되었습니다..

    정규 표현식의 작동 방식에 대한 몇 가지 예를 살펴 보겠습니다..

    필자는 예제에서 JavaScript를 사용할 것이다. 자, 초급 단계를 통과하려면, 당신은 모든 것을 배워야합니다. 문자, 클래스, 한정 기호, 수정 자 및 메소드 정규 표현식에서 사용됩니다. 다음은 모질라 개발자 네트워크의 정규식 페이지로 연결되는 링크입니다.이 페이지에서 모든 정보가 들어있는 표를 볼 수 있습니다. 또한이 게시물의 끝에 가장 많이 사용되는 문자가있는 속임수 시트를 참조 할 수 있습니다.

    간단한 예제와 설명을 보겠습니다. 이것은 정규 표현식입니다..

    위의 정규 표현식이 줄에서 찾을 것입니다. 문자 'B'다음에 'a'~ 'z', 'A'에서 'Z'사이의 문자 중 하나 이상 (0부터 9.

    다음은 강조 표시된 행의 일치 샘플입니다.

    바구니, 구근, B12 비타민, BaSO4, 엔 기원전 회사

    위의 정규식은 검색을 중지합니다. 바구니 긍정적 인 반응을 보냅니다. 그것은 왜냐하면 글로벌 변경자 ''을 지정해야합니다. 정규식에서 모든 가능한 일치 항목을 조사하기를 원하면.

    이제 JavaScript에서이 표현식을 사용하는 방법을 살펴 보겠습니다. 그만큼 테스트 method goes : 일치하는 항목이 발견 된 경우 참된, 그밖에 그릇된.

     var input = "테스트 문자열", regex = / B [a-zA-Z \ d] + /; if (! regex.test (input)) alert ( '일치하는 항목이 없습니다'); else alert ( '일치하는 것을 찾았습니다');

    다른 방법을 시도해 봅시다 : 시합 배열에서 찾은 일치를 반환합니다..

     정규식에 전역 수식어 'g'를 추가하여 모든 일치 항목을 얻습니다. * / ary = input.match (regex); if (ary === null) alert ( '일치하는 항목이 없습니다'); else alert ( '일치하는 항목 :'+ ary.toString ());

    어때요? 바꾸다? 이제 정규식으로 해보 죠..

     var input = "당신의 테스트 문자열", regex = / B [a-zA-Z \ d] + / g; alert (input.replace (regex, "#"));

    아래는 조정할 수있는 코드 팸입니다. JS 코드를 보려면 "JavaScript"탭을 클릭하십시오..

    수업 과정

    연습을 위해, 당신은 구글 수 있습니다. “정규식 연습” 그들을 해결해보십시오. 난이도에 따라 이러한 운동을 시도 할 때 예상되는 사항은 다음과 같습니다..

    기본

    내가 할 수있는 것. 비밀 번호 확인 선발 투수로 충분합니다. 따라서 8 ~ 16 자 길이의 암호 유효성 확인, 선택한 특수 문자의 영숫자 허용.

    중급

    여기서 더 많은 실제 데이터로 연습하고 정규 표현식과 같은 몇 가지 점을 배워야합니다. Lookahead, Lookbehind 단언 일치하는 그룹;

    • PIN 코드, 16 진수, 날짜, 전자 메일 ID, 부동 소수점의 유효성 검사.
    • 후행 0, 공백, 일치하는 단어 집합 바꾸기
    • URL의 다른 부분 추출

    많은

    위의 연습 문제를 최적화 할 수 있습니다. 전자 메일에 가장 적합한 정규 표현식에는 수천 개의 문자가 포함되어 있습니다. 당신이 편안함을 느낄 때까지 가져 가면 충분하다.. 시도해 볼 수도 있습니다.

    • HTML이나 XML 파싱 (실제 세계에서는 정규 표현식을 사용하여 HTML과 같은 비정규 언어를 파싱 할 수 없으므로 그렇게하지 않는 편이 낫다.) 또한 XML 파싱은 고급 작업 사용자에게 더 적합한 어려운 작업이다.
    • 태그 바꾸기
    • 주석 제거 (IE 조건부 주석 제외)

    도구들

    도구 정규식 시각화 저를위한 가장 멋진 것들 중 하나입니다. 긴 복잡한 정규 표현식을 발견하게되면, 그 중 하나에 붙여 넣기 만하면 플로우를 명확하게 볼 수 있습니다. 게다가, 당신은 정규식 코드와 바이올린에 사용할 수있는 많은 도구가 있습니다. 또한 공유 기능과 함께 예제 및 치트 시트를 보여줍니다..

    • Debuggex - 입력에 따라 정규식 다이어그램을 그리고 거기에서 바로 StackOverflow로 빠르게 공유 할 수 있습니다..
    • RegExr -이 정규식을 사용하여 정규식을 테스트 할 수 있습니다. 그것도 참조, 속임수와 당신을 도울 수있는 예제를 가지고있다..
    • Refiddle - 현재 자바 스크립트가 아닌 Ruby 및 .NET 버전의 정규식을 사용할 수 있습니다..

    정규식 Cheatsheet

    토큰 정의
    [알파벳] 모든 단일 문자 a, b 또는 c
    [^ abc] a, b 또는 c 이외의 문자
    [a-z] a ~ z 사이의 문자
    [^ a-z] a ~ z를 제외한 문자
    [A-Z] A ~ Z 사이의 문자
    . 모든 단일 문자
    \에스 공백 문자
    \에스 임의의 비 공백 문자
    \디 임의의 숫자 0에서 9
    \디 임의의 비 숫자
    \ w 모든 단어 문자 (문자, 숫자 및 밑줄)
    \ W 모든 단어가 아닌 문자
    (...) 동봉 된 모든 것을 캡처하십시오.
    (a | b) a 또는 b 중 하나와 일치
    에이? 문자 a는 없거나 한 번 나타납니다.
    에이* 문자 a는 없거나 더 많이 나타납니다.
    에이+ 문자 a는 한 번 이상 나타납니다.
    a 3 연속적으로 3 번 등장
    a 3, 연속적으로 3 번 이상 등장한다.
    a 3,6 연속 3 ~ 6 회 등장
    ^ 문자열 시작
    $ 문자열의 끝
    \비 단어 경계. 문자가 단어의 마지막 또는 첫 단어 문자 인 경우 또는 문자가 단어 또는 비 단어 문자 사이에있는 경우
    \비 비 단어 경계

    Now Read : 정규 표현식 : 30 유용한 도구 및 리소스