정규식에서 가변 길이 Lookbehind 어설션을 어떻게 달성할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-10-29 04:25:02
원래의
403명이 탐색했습니다.

How Can I Achieve Variable-Length Lookbehind Assertions in Regular Expressions?

정규 표현식의 가변 길이 Lookbehind 어설션

정규 표현식은 강력한 패턴 일치 도구이지만 변수의 경우 제한될 수 있습니다. -length 뒤돌아보기 주장. LookBehind 어설션을 사용하면 일치 이전의 조건을 기반으로 문자열을 일치시킬 수 있습니다. 그러나 기존 정규식은 고정 길이 Lookbehind 어설션만 지원합니다.

가변 길이 Lookbehind 어설션의 대안

가변 길이 Lookbehind 어설션을 수행해야 하는 경우 다음이 있습니다. 여러 대안이 있습니다:

  1. Python의 regex 모듈: Python의 regex 모듈은 (?<=...) 구문을 사용하여 가변 길이 뒤돌아보기 어설션을 지원합니다. 이 모듈은 Python의 표준 re 모듈보다 더 발전된 정규식 구현을 제공합니다.
  2. K 제어 기호: 현대 정규식에서 K 기호를 사용하면 이전에 일치하는 문자를 삭제할 수 있습니다. K 발생. 이는 Lookbehind 어설션과 유사하지만 동일한 표현식에서 두 번 사용할 수 없으며 삭제된 문자는 항상 줄의 시작 부분까지 확장됩니다.

K로 대체

일치 항목을 대체할 때 K를 사용하면 대체 항목에서 특정 문자를 제외할 수 있습니다. 예를 들어, 다음은 문자열의 "bar" 부분만 대체합니다.

s/(foo.*)\Kbar/new_text/
로그인 후 복사

부정적 Lookbehinds with K

부정적 Lookbehinds는 ^를 사용하여 달성할 수 있습니다. (?:(?!STRING).)* 구성. 이는 지정된 문자열을 포함하는 하위 문자열과 일치하지 않고 전체 문자열과 효과적으로 일치합니다.

향상된 정규식 구현

일부 언어에서는 가변 길이를 지원하는 향상된 정규식 구현이 있습니다. 뒷모습 주장:

  • Python의 정규식 모듈
  • Perl의 정규식 엔진의 일부 확장 버전

그러나 , 모든 최신 정규식 구현이 가변 길이 LookBehind 어설션을 지원하는 것은 아니라는 점에 유의하는 것이 중요합니다. 특정 언어 및 구현에 대한 설명서를 항상 참조하는 것이 좋습니다.

위 내용은 정규식에서 가변 길이 Lookbehind 어설션을 어떻게 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿