0
문제
PHP는 preg_replace이다 아래 내 정규식 작동 큰Regex Mystery -이 옵션들을 추가 할 수 있습니까?
'|(?<!</h2>)\s*\n(?!<h2>)|'
내가 차라리 'H2'부분은 H2 '의 검색 섹션을 것이다 그러나 | P | 리 | DIV '등, 내가 선택한 것을 찾을 수있는 것은 무엇이든간에.
나는
'|(?<!</(?:h2|p|li|div)>)\s*\n(?!<(?:h2|p|li|div)>)|'
같은 모든 종류의 시도하지만 그냥 작동하지 않습니다.
내가 어제 게시 한 문제의 대안으로이 문제를 해결할 때 올바른 방향으로 나를 지적 할 수 있다면 큰 도움이 될 것입니다.
추가 노트
코드에 대한 나의 목표는 BTW 줄 바꿈하기 전에/H2 또는/P 등을하지 마십시오과 H2 또는 P 등이없는 모든 줄 바꿈 (\ n을)를 찾을 수 있습니다개행 후. 그래서 ....
example\n <- find this
example\n <- find this
example\n <- not this (as <h2> next starts line)
<h2>example\n <- find this
example</h2>\n <- not this (as </h2> ends this line)
example\n <- find this
많은 많은 감사,
.txt 파일 또는 다른 것을 구문 분석합니까? – sinisake
두 번째 정규식은'|'문자를 줄무늬로 사용하고 있기 때문에 작동하지 않습니다.이 문자는 정규 표현식에서'OR'을 의미합니다. 패턴에서 실제로'|'를 사용하지 않기 때문에 첫 번째 패턴에서만 작동합니다. 첫번째와 마지막''를 다른 delimeter ('~')로 대체하십시오. –
정규식을 처음 사용하므로이 오류를 인식하지 못해 죄송합니다. 그러나 불행히도 새로운 오류 메시지는 다음과 같습니다. "컴파일에 실패했습니다 : lookbehind 어설 션은 오프셋 22에서 고정 길이가 아닙니다"- 여러 블록 유형을 사용할 수없는 고정 길이가 필요합니까? – mrmrw