양쪽에 정확히 두 개의 "="문자가 포함 된 문자열을 일치 :내가 좋아하는 패턴을 식별하기 위해 PHP 정규식을 필요로
== 빠른 갈색 여우 ==이
정규식이 일치하지 수 그러나 :
는 === 빠른 갈색 여우 ===
내가 가진 다음 정규식 건설 - 내가 그렇게 가까운 해요 :
={2}[a-zA-z0-9 ]*={2}
양쪽에 정확히 두 개의 "="문자가 포함 된 문자열을 일치 :내가 좋아하는 패턴을 식별하기 위해 PHP 정규식을 필요로
== 빠른 갈색 여우 ==이
정규식이 일치하지 수 그러나 :
는 === 빠른 갈색 여우 ===
내가 가진 다음 정규식 건설 - 내가 그렇게 가까운 해요 :
={2}[a-zA-z0-9 ]*={2}
사용 lookbehind 전에 내다 같은 후 :
편집(?<=^|[^=])={2}[a-zA-z0-9 ]*={2}(?=$|[^=])
:이 솔루션은 작동 있지만, 그것은 효율적되지 않습니다 저스틴처럼.
이 lookarounds에 대한 작업과 같습니다
(?<!=)==[a-zA-z0-9 ]*==(?!=)
나는이 작업을 수행 할 수있는 가장 읽을 수있는 방법이 될 수 위 찾을 수 있습니다. 그들 사이
==(?<!={3})[a-zA-z0-9 ]*(?!={3})==
이것은 또한 당신이 한 휴식 (모든 비 =
문자) 거기로, 같은 문자열에서 여러 번 일치 할 수 있습니다 : 당신은 또한 기본적으로 동일한 방식으로 작동합니다 다음을 사용할 수 있습니다 . 예를 들어 ==foo== ==bar==
은 일치 항목 2 개를 생성해야하고 ==foo====bar==
은 일치하지 않아야합니다.
네,이 부정적인 해결책은 내 (열등한) 대답에 필요한 문자열 가장자리의 시작과 끝을 확인할 필요가 없습니다. 이 대답은 최고로 선택되어야합니다. +1 – ridgerunner
를 나타냅니다를 나타냅니다. 당신은 속도 때문에 승리합니다. @ridgerunner 사람들이 게시 한 몇 가지 다른 변형이 있다고 생각합니다. 나는 그들을 밖으로 시도 할 것이다. Lookahead 및 Lookbehind 운영자 아이디어에 감사드립니다. –
좋은 스포츠맨 정신에 찬 환호, 그리고 당신의 대답이 여전히 맞기 때문에 +1. –