대괄호 사이의 텍스트를 일치에서 제외하는 정규식

WBOY
풀어 주다: 2024-02-09 21:51:09
앞으로
861명이 탐색했습니다.

대괄호 사이의 텍스트를 일치에서 제외하는 정규식

php 편집기 Banana는 강력하고 일반적으로 사용되는 문자열 처리 도구인 정규식을 소개합니다. 정규식은 문자열 일치 시 대괄호 사이의 텍스트를 제외할 수 있으며 이는 복잡한 텍스트 데이터를 처리할 때 매우 유용합니다. 간단한 구문 규칙을 통해 문자열을 쉽게 필터링하고 추출할 수 있어 데이터 처리의 효율성과 정확성이 향상됩니다. 웹 페이지를 개발하든, 데이터를 처리하든, 텍스트 분석을 수행하든 정규식을 익히는 것은 필수적인 기술입니다. 함께 정규식을 배우고 문자열 처리 능력을 향상시켜 봅시다!

질문 내용

다음 텍스트 제공:

으아악

나는 그 텍스트에 대한 모든 것을 && 匹配的正则表达式,但排除括号之间的内容(因此 value3 和 field4 之间的 && 应被忽略)。我已经能够使用以下正则表达式来完成此操作: (&{2})(?![^(]*)) 만들려고 노력 중입니다. [이것은 작동하고 내가 필요한 것을 하고 있습니다] 그러나 문제는 부정적인 예측을 지원하지 않는 golang을 사용하고 있다는 것입니다. 부정적인 예측 없이 할 수 있는 방법이 있나요? 괄호는 중첩될 수 없습니다.

기본적으로 &&로 나누고 싶지만 괄호 사이에 있는 내용을 무시하고 다음과 같은 결과를 얻습니다.

으아악

감사합니다!

해결 방법

원하지 않는 모든 항목을 일치시키되 캡처하지 않고 원하는 모든 항목을 일치시키고 캡처하는 기술을 사용할 수 있습니다(예: 캡처 그룹에 저장). 이를 수행하려면 다음 정규식을 사용할 수 있습니다.

으아악

는 "대괄호 또는 (|) 匹配字符串 ”&&“로 묶인 문자열을 일치시키고 캡처 그룹 1에 저장합니다."라고 읽습니다. 잡히지 않은 일치 항목을 무시하는 것이 (코드에서) 아이디어입니다.

다음 문자열의 경우 일치 항목을 표시합니다("m"s 表示)和捕获(由 "c"s로 표시).

으아악

데모

문자열 일치 항목({)的开头,([^]]*)(&&) 都不匹配,因此字符串指针前进一位到 f。同样,没有匹配项,因此字符串指针又前进一个字符,指向 1。这将继续(没有匹配项),直到到达第一个 &([^]]*) 不匹配,但 (&&). 이 일치 항목이 캡처되었기 때문에 관심이 있습니다(그룹 1 캡처).

문자열 포인터는 한 번에 한 문자씩 앞으로 이동하여 (。此时,({f3} == v3 && {f4} == v4)([^]]*) 일치 항목에 도달할 때까지 더 이상 일치 항목을 찾지 않습니다. 하지만 캡처되지 않았기 때문에 신경 쓰지 않습니다. 이는 문자열 끝에 도달할 때까지 계속됩니다.

또는 정규식을 사용할 수도 있습니다

으아악

각 일치 항목의 첫 번째 문자를 확인하세요. ( 그렇다면 우리는 경기를 고려하여 포기합니다.

&& 항목이 발견되면 코드에서 이를 다른(아마도 비어 있는) 문자열로 대체하거나, 문자열에서 오프셋을 가져오거나(어떤 목적으로) 단순히 문자열에서 일치하는 항목 수의 카운터를 증가시킬 수 있습니다. 물론 이는 우리가 이러한 문자열을 일치시키려는 이유에 따라 다릅니다.

위 내용은 대괄호 사이의 텍스트를 일치에서 제외하는 정규식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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