정규 표현식의 프로그래밍에서의 응용

정규 표현식도 Regex라고 하는데 그 작업 원리는 반드시 일치하는 문자를 제공하는 것이다.정규 표현식은 대량의 데이터를 처리할 때 보통 사용된다.
이렇게 많은 데이터를 처리할 때, 우리는 하나하나 데이터를 갱신하거나 변경할 필요가 없다. 왜냐하면 이것은 우리에게 너무 많은 시간을 차지하기 때문에, 우리는 Regex를 사용하여 그것들을 한데 조합하여 갱신할 것이다.

무엇이 정규 표현식입니까?


정규 표현식은 지정된 검색 모드의 문자 시퀀스입니다.정규 표현식도 patterns라고 하는데 문자열의 문자 조합에 일치합니다.일반적으로 문자열 검색 알고리즘은 이러한 모드를 사용하여 문자열에 대해 find 또는 find and replace 조작을 실행하거나 입력 검증을 한다.

예를 들어 [a-zA-Z]와 같은 간단한 표현식은 모든 알파벳과 일치합니다.간단한 일반 자모를 포함하고 성조 표시가 없는 모든 단어는 코드, 표, 표기 등과 같은 종류에 속한다.
정규 표현식이 프로그래밍에서의 일부 주요 용도
앞에서 말한 바와 같이 정규 표현식은 프로그래머가 각종 임무를 수행하는 데 매우 유용하다.
  • find and replace 함수를 실현하는 데 사용되며, 이 함수는 문자 그룹이나 서열을 표시하고 표현식이 지정한 다른 내용으로 대체한다.
  • 예를 들어 전체 문서의 단일 문자열을 식별할 수 있다.
  • 는 암호, 이메일 주소 및 기타 특수 문자가 필요할 수 있는 입력 유형에 사용됩니다.
  • 정규 표현식의 메타 문자


    우리가 search operations를 쓰고 각종 모델을 설명하기 전에, 우리는 이 표현식을 만드는 데 관련된 문자를 먼저 알아야 한다.
    AInput Validation는 셸 해석기나 정규 표현식(regex) 엔진 같은 컴퓨터 프로그램에 특별한 의미를 가진 문자이다.
           [  ]  -  +  *  ?  ^  $  (  )  {  }  |  .  \
    
    Regex가 활성화된 환경에서 해석할 때 상술한 모든 문자는 완전히 다른 의미를 가진다.
    대괄호[]
    이것은 유사한 데이터를 한데 묶어 범위를 만드는 데 사용됩니다.예를 들어 metacharacter단순은 0에서 9까지의 모든 숫자를 나타낸다.
    하이픈 -
    이것은 간단하게 Regex, 즉 하나의 범위 또는 하나의 구간을 나타낸다.
    더하기 +
    이것은 앞의 한 개 이상의 문자나 한 그룹의 문자와 일치합니다.
    예를 들어 [0-9]와 같은 간단한 표현식은 이 표현식에서 얻은 단어가 반드시 to로 시작해야 하고 가능한 한 많은 /ab+c/s가 있어야 하며 항상 a로 끝내야 한다는 것을 의미한다.일부 수용 가능한 출력은b,c,abc, 그리고 더 많다.
    별표*
    이것은 앞의 0 개 이상의 문자나 한 그룹의 문자와 일치합니다.
    예를 들어 abbc와 같은 간단한 표현식은 이 표현식에서 얻은 단어가 반드시 abbbc로 시작해야 하고 0개 또는 가능한 한 많은 /ab*c/가 있어야 하며 항상 a로 끝내야 한다는 것을 의미한다.일부 수용 가능한 출력은b,c,ac, 그리고 더 많다.
    물음표
    이것은 앞의 0 자나 한 자나 한 조의 문자와 일치한다.
    예를 들어 abbc와 같은 간단한 표현식은 이 표현식에서 얻은 단어가 반드시 abbbc로 시작해야 하고 0이나 1/ab?c/이 있어야 하며 시종일관a으로 끝내야 한다는 것을 의미한다.받아들일 수 있는 출력 두 개bc만 있다.
    기호 삽입^
    삽입 기호는 두 가지 다른 용도가 있다.이것은 '한 줄의 시작' 을 나타내는 특수 문자이며, []s에서는 'not' 연산자입니다.
    이 세 가지 예를 보면,
  • ac
  • abc
  • /([^aeiou])/
  • 첫 번째 예는 모음이 아닌 문자만 일치합니다.
    두 번째 자모는 한 줄로 시작하는 모음과 일치한다.
    세 번째는 한 줄의 첫머리에 있는 모음이 아닌 문자와 일치한다.
    달러 기호$
    이것은 줄의 끝과 일치한다.예를 들어 /^([aeiou])/는 한 줄의 끝에 있는 모음과 일치한다.
    괄호()
    정규 표현식의 괄호는 일반적으로 '포획 그룹' 을 표시하거나, 나중에 참고할 문자열의 서브집합을 저장합니다.
    예: /^([^aeiou])/이 예는 단일 모음으로 시작하는 문자열 (첫 번째 포획조는 단일 모음) 과 그 다음에 임의의 숫자 (두 번째 포획조는 임의의 숫자) 를 일치시킨다.
    중괄호{}
    이것은 특정한 범위와 일치한다.원본 문자열에서 연산자나 서브표현식이 일치해야 하는 출현 횟수를 구체적으로 설명하고자 할 때 사용할 수 있습니다.괄호와 그 내용을 구간 표현식이라고 한다.예를 들어 /$([aeiou])/ 앞의 요소나 하위 표현식과 일치하려면 n회가 꼭 나와야 한다.
    파이핑 기호|
    파이프 기호로 구분된 두 정규 표현식은 첫 번째 또는 두 번째 인용과 일치합니다.
    예를 들어 /^([aeiou])([0-9])/와 같은 간단한 표현식은 이 표현식에서 얻은 단어가 반드시 {n}, 또는 /(a|b)*c/로 시작해야 하거나 a로 끝나지 않아야 하며 시종b로 끝내야 한다는 것을 의미한다.일부 수용 가능한 출력은c,c,ac, 그리고 더 많다.
    점.
    점 연산자는 문자와 일치합니다.그것은 매우 많은 동적 용도가 있다.
    예를 들어 표현식bc은 숫자로 시작하고 뒤에 임의의 문자가 있는 문자열만 일치합니다.
    *역충돌\*
    반충은 원 문자를 피하는 데 쓰인다.용어인'탈출 문자'는 문자를 무효화시키고 글자의 의미를 가지게 하는 것을 의미한다.
    예를 들어, 한 점(".")메타 문자로서 단일 문자를 나타냅니다.그래서 우리가 /^([0-9])(.)/와 같은 표현식을 가지고 있을 때, 그것은 하나의 ab., 하나의 a 뒤에 어떤 문자와도 일치한다.그러나 b처럼 도망갈 때, 그것은 단지 ab\.를 가리킨다

    방법과 클래스의 정규 표현식


    이제 우리가 아래의 예에서 배운 모든 지식을 응용합시다
    예1
    첫 번째 예시의 표현식은 다음 코드 세그먼트ab. 문자열의 두 단어와 일치합니다.이 프로그램은 긍정 경고를 되돌려줍니다.
    var regex = /li[kv]e/;
    var str = "They like the live show.";
    
    // Test the string against the regular expression
    if(regex.test(str)) {
        alert("Match found!");
    } else {
        alert("Match not found.");
    }
    
    출력
    Match found!
    
    예2
    다음 예시에는 아래에 제시된 문자열의 서열에 나타난 모든 단어를 기록하기 위해 str가 추가되었다.
    var regex = /[rt]?each/g;
    var str = "To teach means to reach as many kids, each also reaching others";
    var matches = str.match(regex);
    
    if(regex.exec(str)) {
        alert(matches.length + " Matches found!");
    } else {
        alert("Match not found.");
    }
    
    앞에서 설명한 바와 같이 본 예의 출력은 g,teach,reacheach로 그것들의 수량이 4라는 것을 의미한다.확인을 위해 이 코드 세그먼트를 실행할 수 있습니다.
    출력
    4 Matches found!
    

    문자 클래스


    문자 클래스는 텍스트가 일치한 후 가장 기본적인 정규 표현식 개념이다.그것은 작은 문자 서열을 더 큰 문자 집합과 일치하게 한다.예를 들어 reach는 기본적으로 [A-Z]라고 표시할 수 있고 \u는 어떤 숫자도 표시할 수 있다.
    다음 문자 클래스를 참조하십시오.
  • \d는 숫자를 나타낸다.그것도 [0-9]라고 썼다.
  • \d는 비숫자를 나타낸다.그것도 [^0-9]라고 썼다.
  • \D는 영숫자 및 밑줄을 나타냅니다.또한 [A-Za-z0-9]로 표시됩니다.
  • \w는 단어가 아닌 문자를 나타낸다.또한 [^A-Za-z0-9 33;로 표시됩니다.
  • \W는 공백 문자를 나타냅니다.또한 [\t\r\n\v\f]라고도 쓰여 있습니다.
  • \s는 공백이 아닌 문자를 나타냅니다.또한 [^\t\r\n\v\f]라고도 쓰여 있습니다.
  • \S는 알파벳 문자를 나타낸다.그것도 [A-Za-z]라고 쓰여 있다.
  • \a는 소문자를 나타냅니다.그것도 [a-z]라고 썼다.
  • \l는 대문자를 나타냅니다.그것도 [A-Z]라고 쓰여 있다.
  • \u는 16진수를 나타냅니다.그것도 [A-Fa-f0-9]로 쓰여 있다.
  • \x는 경계만 나타낸다.
  • \b는 전역 검색을 의미할 뿐입니다.이것은 모든 이벤트와 일치한다는 것을 의미합니다.
  • 이러한 문자 클래스는 일부 프로그래밍 언어나 테스트 환경에서 다를 수 있음을 주의하십시오.

    프로그래밍의 문자 클래스


    우리는 문자 종류와 기타 문자와 관련된 몇 가지 예를 다시 볼 것이다.
    예3
    다음 표현식은 문자열을 문자열 배열로 분할합니다.\g에 따르면 분할 기준은 공백이다.문자열 목록을 볼 수 있도록 컨트롤러에 로그인했습니다.
    var regex = /[\s,]+/;
    var str = "My house is painted white, purple and blue";
    var parts = str.split(regex);
    
    // Loop through parts array and display substrings
    for(var part of parts){
        console.log(part)
        document.write("<p>" + part + "</p>");
    }
    
    예4
    다음 예에서, 우리는 Regex 변수의 모든 숫자를 하이픈으로 대체한다.
    var regex = /\d/g;
    var replacement = "-";
    var str = "There 3 kids, 4 adults and 98 animals";
    
    // Replace digits with -
    var matches = str.replace(regex, replacement);
    console.log(matches)
    
    예5
    다섯 번째 예에 대해서도 우리는 교체를 했지만, 모든 소문자 모음을 별표로 바꾸었다.
    var re = /[aeiou]/g;
    var replace = "*";
    var str2 = "Every one of them knows the answer to No 2";
    
    // Replace lowercase vowels with *
    var matches2 = str2.replace(re, replace);
    console.log(matches2)
    
    위에서 지정한 코드 세션을 다시 테스트하고 빈 시간에 새로운 표현식을 시도할 수 있습니다.여느 때와 마찬가지로 연습을 많이 할수록 전문가가 될 기회가 커진다.

    결론


    정규 표현식은 컴퓨터 프로그래밍과 데이터 관리의 각 방면에 응용할 수 있다.SQL 또는 데이터베이스 작업을 수행할 수 있습니다.str를 사용할 때 항상 시도해야 할 장면이 많다.나는 이 문장이 너에게 매우 도움이 되기를 바란다.하지만 그뿐만이 아니다. 연습, 연습, 다시 연습.

    좋은 웹페이지 즐겨찾기