정규 표현식에서 캡처 그룹이 마지막 일치하는 캐릭터를 반환하는 이유는 무엇입니까?
정규 표현식 캡처 그룹의 반환 값에 대한 자세한 설명
이 기사는 정규식 캡처 그룹의 반환 값을 분석하고 일반적인 오해를 설명합니다.
문제 : 그룹 반환 값 캡처가 항상 예상되는 것은 아닙니다
다음 정규 표현식과 문자열 일치를 고려하십시오.
/#\/((\ w))/. exec ( "/a-web/#/abc?");
실행 결과 :
[ '#/abc', 'abc', 'c', index : 7, 입력 : '/a-web/#/abc?', Groups : Undefined]
결과 배열의 세 번째 요소는 예상되는 'abc'
'c'
'이며 캡처 그룹 리턴 값에 대한 질문을 제기합니다.
분석 : 중첩 캡처 그룹의 특징
정규 표현식 /#\/((\w) )/
두 개의 중첩 된 캡처 그룹이 포함됩니다.
-
(\w )
: 하나 이상의 단어 문자를 일치시킵니다. -
((\w) )
: 첫 번째 캡처 그룹이 포함되어 있으며 하나 이상의 단어 문자와 일치합니다.
exec()
메소드의 리턴 값 배열에는 다음이 포함됩니다.
- 첫 번째 요소 : 전체 일치 문자열 (
#/abc
). - 두 번째 요소 : 첫 번째 캡처 그룹
(\w )
(abc
)의 일치 결과. - 세 번째 요소 : 두 번째 캡처 그룹
((\w) )
(c
)의 일치 결과.
열쇠는 두 번째 캡처 그룹입니다. 전체 (\w )
결과와 일치하지 않지만 마지막 일치하는 문자 (\w )
만 캡처합니다 . \w
abc
일치하지만 (\w )
중복 일치이므로 마지막 일치하는 문자 c
만 마침내 반환됩니다.
결론 : 중첩 캡처 그룹의 미묘함 이해
'c'
의 발생은 오류가 아니지만 중첩 캡처 그룹의 특성으로 인해 발생합니다. 이 기능을 이해하는 것은 정규 표현식 캡처 그룹의 올바른 사용 및 이해에 필수적입니다. 전체 문자열을 캡처 해야하는 경우이 중첩 구조를 피하거나 다른 정규식을 사용해야합니다. 예를 들어 abc
캡처하려면 /#\/(\w )/
사용할 수 있습니다.
위 내용은 정규 표현식에서 캡처 그룹이 마지막 일치하는 캐릭터를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

상위 카테고리 아카이브 페이지에 자식 카테고리를 표시하는 방법을 알고 싶습니까? 분류 아카이브 페이지를 사용자 정의 할 때 방문자에게 더 유용하기 위해이를 수행해야 할 수도 있습니다. 이 기사에서는 부모 카테고리 아카이브 페이지에 자식 카테고리를 쉽게 표시하는 방법을 보여줍니다. 하위 범주가 부모 카테고리 아카이브 페이지에 나타나는 이유는 무엇입니까? 부모 카테고리 아카이브 페이지에 모든 자식 카테고리를 표시하면 방문자에게 덜 일반적이고 유용 할 수 있습니다. 예를 들어, 책에 대한 WordPress 블로그를 실행하고 "테마"라는 분류법을 가지고 있다면 독자가 할 수 있도록 "소설", "논픽션"과 같은 하위 세포 체질을 추가 할 수 있습니다.

MySQL을 우아하게 설치하는 열쇠는 공식 MySQL 저장소를 추가하는 것입니다. 특정 단계는 다음과 같습니다. 피싱 공격을 방지하기 위해 MySQL 공식 GPG 키를 다운로드하십시오. MySQL 리포지토리 파일 추가 : rpm -uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm yum repository cache : yum 업데이트 설치 mysql : yum 설치 mysql-server startup startup mysql 서비스 : systemctl start mysqlctl start mysqlctl.

Centos는 2024 년에 상류 분포 인 RHEL 8이 종료 되었기 때문에 폐쇄 될 것입니다. 이 종료는 CentOS 8 시스템에 영향을 미쳐 업데이트를 계속받지 못하게합니다. 사용자는 마이그레이션을 계획해야하며 시스템을 안전하고 안정적으로 유지하기 위해 Centos Stream, Almalinux 및 Rocky Linux가 포함됩니다.

Oracle SQL 문의 핵심은 다양한 조항의 유연한 적용뿐만 아니라 선택, 삽입, 업데이트 및 삭제입니다. 인덱스 최적화와 같은 진술의 실행 메커니즘을 이해하는 것이 중요합니다. 고급 사용에는 하위 쿼리, 연결 쿼리, 분석 기능 및 PL/SQL이 포함됩니다. 일반적인 오류에는 구문 오류, 성능 문제 및 데이터 일관성 문제가 포함됩니다. 성능 최적화 모범 사례에는 적절한 인덱스를 사용하고 선택 *을 피하고 조항을 최적화하고 바운드 변수를 사용하는 것이 포함됩니다. Oracle SQL을 마스터하려면 코드 쓰기, 디버깅, 사고 및 기본 메커니즘 이해를 포함한 연습이 필요합니다.

Intellij에서 ...

MongoDB에 연결하기위한 주요 도구는 다음과 같습니다. 1. MongoDB 쉘, 데이터를 신속하게보고 간단한 작업을 수행하는 데 적합합니다. 2. 언어 드라이버 (Pymongo, MongoDB Java 드라이버, MongoDB Node.js 드라이버 등)는 응용 프로그램 개발에 적합하지만 사용 방법을 마스터해야합니다. 3. GUI 도구 (예 : Robo 3T, Compass)는 초보자를위한 그래픽 인터페이스와 빠른 데이터보기를 제공합니다. 도구를 선택할 때는 응용 프로그램 시나리오 및 기술 스택을 고려하고 연결 문자열 구성, 권한 관리 및 연결 풀 및 인덱스 사용과 같은 성능 최적화에주의를 기울여야합니다.

Docker는 Linux 커널 기능을 사용하여 효율적이고 고립 된 응용 프로그램 실행 환경을 제공합니다. 작동 원리는 다음과 같습니다. 1. 거울은 읽기 전용 템플릿으로 사용되며, 여기에는 응용 프로그램을 실행하는 데 필요한 모든 것을 포함합니다. 2. Union 파일 시스템 (Unionfs)은 여러 파일 시스템을 스택하고 차이점 만 저장하고 공간을 절약하고 속도를 높입니다. 3. 데몬은 거울과 컨테이너를 관리하고 클라이언트는 상호 작용을 위해 사용합니다. 4. 네임 스페이스 및 CGroup은 컨테이너 격리 및 자원 제한을 구현합니다. 5. 다중 네트워크 모드는 컨테이너 상호 연결을 지원합니다. 이러한 핵심 개념을 이해 함으로써만 Docker를 더 잘 활용할 수 있습니다.

가상 통화 가격 상승의 요인은 다음과 같습니다. 1. 시장 수요 증가, 2. 공급 감소, 3. 긍정적 인 뉴스, 4. 낙관적 시장 감정, 5. 거시 경제 환경; 감소 요인에는 다음이 포함됩니다. 1. 시장 수요 감소, 2. 공급 증가, 3. 부정적인 뉴스의 파업, 4. 비관적 시장 감정, 5. 거시 경제 환경.
