정규 표현식 - 그룹과 문자열 방법
16013 단어 javascriptbeginners
조를 나누다
특수 연산자를 사용하는 능력이 정규 표현식이 이렇게 강한 이유 중의 하나이다.게다가 정규 표현식은 몇 개의 문자를 한데 조합하고, 이 전체 문자에 연산자를 사용하면, 단독으로 문자열을 사용하는 것보다 더 구체적인 검색 패턴을 형성할 수 있다.괄호로 문자를 둘러싸고 괄호 뒤에 연산자를 붙여 전체 그룹에 적용합니다.예를 들면 다음과 같습니다.
const waluigi = /wa+(ha+)+/;
waluigi.test('waha'); // returns true
waluigi.test('waaaahaaaaha'); // returns true
waluigi.test('waahahaahahaa'); // returns true
위의regexp에서, 우리는 몇 개의 '+' 조작부호와 괄호 그룹이 있다.괄호 안에 "ha+"를 둘러싸고 괄호 뒤에 "+"연산자를 붙인 것을 주의하십시오.이것은 문자열'하'가 임의의 횟수를 나타낼 수 있고 임의의 수량의'a'가'h'뒤를 따를 수 있다는 것을 의미한다.괄호와 파이프 조작부호 '|' 를 결합시킬 수 있으며, 후자의 기능은 자바스크립트 '또는' 조작부호와 유사하다.이 연산자는 연산자 양쪽의 선택이 일치함을 나타냅니다.
const animals = /(cat|dog|turtle)s/;
animals.test('I like cats'); // returns true
animals.test('I like dogs'); // returns true
animals.test('I like turtles'); // returns true
animals.test('I like squids'); // returns false
파이프 조작원도 괄호 밖에서 일할 것이니 주의하십시오.
경계
"^"기호와 "$"기호는 각각 문자열의 시작과 끝을 나타냅니다.
const carat = /^\d/;
carat.test('5 time 5 is 25'); // returns true
carat.test('Five time five is 25'); // returns false
const dollar = /\d$/;
dollar.test('five times five is 25') // returns true
dollar.test('five times five is twenty-five') // returns false
const caratDollar = /^\d.+\d$/;
caratDollar.test('5 times 5 is 25') // returns true
caratDollar.test('5 times 5 is twenty-five') // returns false
caratDollar.test('Five times 5 is 25') // returns false
caratDollar.test('Five times 5 is twenty-five') // returns false
위의 예에서, 우리는 우리의 클라레텍스가 '^' 로 시작하고, 그 다음은 '\d' 로 시작하는 것을 보았다.이것은 문자열의 첫 번째 문자가 반드시 숫자여야 한다는 것을 의미한다.이와 유사하게, dollar regexp에서는 문자열이 숫자로 끝나야 한다는 것을 '$' 기호로 표시합니다.우리는 카트 Dollar에서 이 두 문자를 조합하고, 중간에 '+' 를 붙여서 문자열이 어떤 숫자로 시작하고 끝날지, 그리고 다른 문자가 있는지 테스트할 수 있다. (줄 바꾸기 문자를 제외하고!)둘 사이에 끼다."""\b""태그를 사용할 수도 있습니다."이것은 단어의 경계를 나타낸다. 이것은 '\b' 를 찾을 수 있는 위치가 문자열의 시작이나 끝일 수도 있고, 알파벳이 아닌 숫자일 수도 있다는 것을 의미한다.
const spaceFirst = /\bcat/;
spaceFirst.test('I like cats'); // returns true
spaceFirst.test('.cats'); // returns true
spaceFirst.test('9cats'); // returns false
spaceFirst.test('concat'); // returns false
const spaceLast = /cat\b/;
spaceLast.test('I like cats'); // returns false
spaceLast.test('I have a cat'); // returns true
spaceLast.test('I have a cat.'); // returns true
spaceLast.test('concatenate'); // returns false
const allAlone = /\bcat\b/;
allAlone.test('I like cats'); // returns false
allAlone.test('I have a cat'); // returns true
allAlone.test('My cat is friendly'); // returns true
allAlone.test('I have a cat.'); // returns true
allAlone.test('concatenate'); // returns false
문자열 사용 방법
마지막으로 정규 표현식은 트루나false만 되돌아오는 것이 아니라 몇 개의 문자열 방법과 함께 사용할 수 있다.우선 수색에 대해 이야기합시다.레지스터와indexOf 메서드를 와 함께 사용할 수 있습니다.수색하다.이것은 일치하는 항목의 첫 번째 인덱스를 되돌려줍니다. 일치하는 항목을 찾지 못하면 -1을 되돌려줍니다. 아래와 같습니다.indexOf.예를 들면 다음과 같습니다.
const searchExp = /chicken/;
const searchString= `Don't count your chickens before they hatch`;
searchString.search(searchExp); // returns 17
그러나 이와 다르다.indexOf, 특정한 인덱스부터 시작할 수 없습니다.그 다음에 너는 있다.일치합니다. 이것은 사실상 정규 표현식이 필요합니다.match는 문자열의 모든 일치하는 항목의 그룹을 되돌려줍니다. ("g"로고를 사용하지 않으면 하나만 되돌려줍니다.문자열보다 정규 표현식이 더 구체적일 수 있다는 것을 기억할 때 유용합니다.예를 살펴보겠습니다.
const matchExp = /\d+/g;
const matchString = 'I had a 10, 9, 4, 2, and ace.'
matchString.match(matchExp); // returns ["10", "9", "4", "2"]
마지막으로 우리는 해냈다.교체!우리는 문자열을 사용하는 것처럼 그것을regexp만 사용할 수 있지만, 정규 표현식과 표현식은 다른 재미있는 용례가 있다.바꾸다.우선, 우리는 g 로고를 사용하여 문자열에 나타나는 모든 일치하는 항목을 바꿀 수 있음을 나타낼 수 있다. (같은 일을 할 수 있는 리플렉스 All이 있지만, 본문을 작성할 때, 모든 브라우저에서 완전히 작용하는 것은 아니다. 리플렉스 with regular expressions는 그렇다.)
const replaceAllExp = /(cat|dog|fish)/g;
const replaceAllString = 'cat dog fish'
replaceAllString.replace(replaceAllExp, 'turkey'); // returns 'turkey turkey turkey'
우리도 교체 문자열에서 인용 그룹이 일치할 수 있습니다.당신이 그것이 발생하는 것을 본 후에, 이것은 더욱 생각하기 쉽다.
const namesExp = /(\w+), (\w+)/g
const names = 'Potter, Harry, Weasley, Ronald, Granger, Hermione';
names.replace(namesExp, "$2 $1"); // returns "Harry Potter, Ronald Weasley, Hermione Granger"
정규 표현식에서, 우리는 두 개의 그룹이 있는데, 괄호로 표시한다.우리 전화 회의에서문자열에 $2와 $1이 있음을 주의하십시오.이 형식은 정규 표현식 그룹을 가리킨다.우리는 기본적으로 두 번째 표현식에서 찾은 모든 것을 첫 번째 표현식에서 찾은 모든 것 앞에 놓고 둘 사이에 빈칸을 남긴다.정규 표현식의 마지막 용법.replace는 문자열에 대한 동작을 수행하기 위해 함수와 함께 사용합니다.이것은 아래의 상황에서도 가능하다.replace는 두 문자열과 함께 사용되지만 정규 표현식을 사용하여 검색 모드를 보다 구체적으로 사용할 수 있습니다.
const funcExp = /\b(jfk|fdr)\b/g
const presidents = "I prefer jfk to fdr";
presidents.replace(funcExp, str => str.toUpperCase()); // returns "I prefer JFK to FDR"
결론
문자열을 처리할 때 정규 표현식은 기억해야 할 강력한 도구입니다.그것들은 우리의 문자열 방법을 강화하거나, 보통 하나의 표현식으로 여러 줄 코드를 실행하는 것을 허용할 수 있다.
Reference
이 문제에 관하여(정규 표현식 - 그룹과 문자열 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mconner89/regular-expressions-grouping-and-string-methods-3ijn
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
const waluigi = /wa+(ha+)+/;
waluigi.test('waha'); // returns true
waluigi.test('waaaahaaaaha'); // returns true
waluigi.test('waahahaahahaa'); // returns true
const animals = /(cat|dog|turtle)s/;
animals.test('I like cats'); // returns true
animals.test('I like dogs'); // returns true
animals.test('I like turtles'); // returns true
animals.test('I like squids'); // returns false
"^"기호와 "$"기호는 각각 문자열의 시작과 끝을 나타냅니다.
const carat = /^\d/;
carat.test('5 time 5 is 25'); // returns true
carat.test('Five time five is 25'); // returns false
const dollar = /\d$/;
dollar.test('five times five is 25') // returns true
dollar.test('five times five is twenty-five') // returns false
const caratDollar = /^\d.+\d$/;
caratDollar.test('5 times 5 is 25') // returns true
caratDollar.test('5 times 5 is twenty-five') // returns false
caratDollar.test('Five times 5 is 25') // returns false
caratDollar.test('Five times 5 is twenty-five') // returns false
위의 예에서, 우리는 우리의 클라레텍스가 '^' 로 시작하고, 그 다음은 '\d' 로 시작하는 것을 보았다.이것은 문자열의 첫 번째 문자가 반드시 숫자여야 한다는 것을 의미한다.이와 유사하게, dollar regexp에서는 문자열이 숫자로 끝나야 한다는 것을 '$' 기호로 표시합니다.우리는 카트 Dollar에서 이 두 문자를 조합하고, 중간에 '+' 를 붙여서 문자열이 어떤 숫자로 시작하고 끝날지, 그리고 다른 문자가 있는지 테스트할 수 있다. (줄 바꾸기 문자를 제외하고!)둘 사이에 끼다."""\b""태그를 사용할 수도 있습니다."이것은 단어의 경계를 나타낸다. 이것은 '\b' 를 찾을 수 있는 위치가 문자열의 시작이나 끝일 수도 있고, 알파벳이 아닌 숫자일 수도 있다는 것을 의미한다.const spaceFirst = /\bcat/;
spaceFirst.test('I like cats'); // returns true
spaceFirst.test('.cats'); // returns true
spaceFirst.test('9cats'); // returns false
spaceFirst.test('concat'); // returns false
const spaceLast = /cat\b/;
spaceLast.test('I like cats'); // returns false
spaceLast.test('I have a cat'); // returns true
spaceLast.test('I have a cat.'); // returns true
spaceLast.test('concatenate'); // returns false
const allAlone = /\bcat\b/;
allAlone.test('I like cats'); // returns false
allAlone.test('I have a cat'); // returns true
allAlone.test('My cat is friendly'); // returns true
allAlone.test('I have a cat.'); // returns true
allAlone.test('concatenate'); // returns false
문자열 사용 방법
마지막으로 정규 표현식은 트루나false만 되돌아오는 것이 아니라 몇 개의 문자열 방법과 함께 사용할 수 있다.우선 수색에 대해 이야기합시다.레지스터와indexOf 메서드를 와 함께 사용할 수 있습니다.수색하다.이것은 일치하는 항목의 첫 번째 인덱스를 되돌려줍니다. 일치하는 항목을 찾지 못하면 -1을 되돌려줍니다. 아래와 같습니다.indexOf.예를 들면 다음과 같습니다.
const searchExp = /chicken/;
const searchString= `Don't count your chickens before they hatch`;
searchString.search(searchExp); // returns 17
그러나 이와 다르다.indexOf, 특정한 인덱스부터 시작할 수 없습니다.그 다음에 너는 있다.일치합니다. 이것은 사실상 정규 표현식이 필요합니다.match는 문자열의 모든 일치하는 항목의 그룹을 되돌려줍니다. ("g"로고를 사용하지 않으면 하나만 되돌려줍니다.문자열보다 정규 표현식이 더 구체적일 수 있다는 것을 기억할 때 유용합니다.예를 살펴보겠습니다.
const matchExp = /\d+/g;
const matchString = 'I had a 10, 9, 4, 2, and ace.'
matchString.match(matchExp); // returns ["10", "9", "4", "2"]
마지막으로 우리는 해냈다.교체!우리는 문자열을 사용하는 것처럼 그것을regexp만 사용할 수 있지만, 정규 표현식과 표현식은 다른 재미있는 용례가 있다.바꾸다.우선, 우리는 g 로고를 사용하여 문자열에 나타나는 모든 일치하는 항목을 바꿀 수 있음을 나타낼 수 있다. (같은 일을 할 수 있는 리플렉스 All이 있지만, 본문을 작성할 때, 모든 브라우저에서 완전히 작용하는 것은 아니다. 리플렉스 with regular expressions는 그렇다.)
const replaceAllExp = /(cat|dog|fish)/g;
const replaceAllString = 'cat dog fish'
replaceAllString.replace(replaceAllExp, 'turkey'); // returns 'turkey turkey turkey'
우리도 교체 문자열에서 인용 그룹이 일치할 수 있습니다.당신이 그것이 발생하는 것을 본 후에, 이것은 더욱 생각하기 쉽다.
const namesExp = /(\w+), (\w+)/g
const names = 'Potter, Harry, Weasley, Ronald, Granger, Hermione';
names.replace(namesExp, "$2 $1"); // returns "Harry Potter, Ronald Weasley, Hermione Granger"
정규 표현식에서, 우리는 두 개의 그룹이 있는데, 괄호로 표시한다.우리 전화 회의에서문자열에 $2와 $1이 있음을 주의하십시오.이 형식은 정규 표현식 그룹을 가리킨다.우리는 기본적으로 두 번째 표현식에서 찾은 모든 것을 첫 번째 표현식에서 찾은 모든 것 앞에 놓고 둘 사이에 빈칸을 남긴다.정규 표현식의 마지막 용법.replace는 문자열에 대한 동작을 수행하기 위해 함수와 함께 사용합니다.이것은 아래의 상황에서도 가능하다.replace는 두 문자열과 함께 사용되지만 정규 표현식을 사용하여 검색 모드를 보다 구체적으로 사용할 수 있습니다.
const funcExp = /\b(jfk|fdr)\b/g
const presidents = "I prefer jfk to fdr";
presidents.replace(funcExp, str => str.toUpperCase()); // returns "I prefer JFK to FDR"
결론
문자열을 처리할 때 정규 표현식은 기억해야 할 강력한 도구입니다.그것들은 우리의 문자열 방법을 강화하거나, 보통 하나의 표현식으로 여러 줄 코드를 실행하는 것을 허용할 수 있다.
Reference
이 문제에 관하여(정규 표현식 - 그룹과 문자열 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mconner89/regular-expressions-grouping-and-string-methods-3ijn
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
const searchExp = /chicken/;
const searchString= `Don't count your chickens before they hatch`;
searchString.search(searchExp); // returns 17
const matchExp = /\d+/g;
const matchString = 'I had a 10, 9, 4, 2, and ace.'
matchString.match(matchExp); // returns ["10", "9", "4", "2"]
const replaceAllExp = /(cat|dog|fish)/g;
const replaceAllString = 'cat dog fish'
replaceAllString.replace(replaceAllExp, 'turkey'); // returns 'turkey turkey turkey'
const namesExp = /(\w+), (\w+)/g
const names = 'Potter, Harry, Weasley, Ronald, Granger, Hermione';
names.replace(namesExp, "$2 $1"); // returns "Harry Potter, Ronald Weasley, Hermione Granger"
const funcExp = /\b(jfk|fdr)\b/g
const presidents = "I prefer jfk to fdr";
presidents.replace(funcExp, str => str.toUpperCase()); // returns "I prefer JFK to FDR"
문자열을 처리할 때 정규 표현식은 기억해야 할 강력한 도구입니다.그것들은 우리의 문자열 방법을 강화하거나, 보통 하나의 표현식으로 여러 줄 코드를 실행하는 것을 허용할 수 있다.
Reference
이 문제에 관하여(정규 표현식 - 그룹과 문자열 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mconner89/regular-expressions-grouping-and-string-methods-3ijn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)