정규식을 사용하여 데이터베이스로 파싱해야하는 텍스트 파일을 골라야했습니다. 내 파일의 형식은 다음과 같습니다여러 캡쳐 그룹이있는 정규 표현식
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Fusce lacinia sollicitudin lectus id eleifend. Phasellus.
massa sapien, scelerisque in tincidunt et, porttitor eget ante.
In iaculis justo vel quam rhoncus volutpat. Curabitur eros est,
ultrices in elementum eget, venenatis eget mauris. Sed sollicitudin,
nibh sed varius aliquet, neque odio porttitor risus, at sollicitudin
lectus neque sit amet diam.
Aliquam condimentum sapien eu
tellus condimentum suscipit.
Pellentesque in accumsan nunc.
나는 다음과 같은 캡처 그룹을 마련하기 위해 노력하고있어 :
Lorem ipsum dolor
sit amet, consectetur adipiscing elit.
Fusce lacinia sollicitudin lectus id eleifend. Phasellus.
massa sapien, scelerisque in tincidunt et, porttitor eget ante.
In iaculis justo vel quam rhoncus volutpat. Curabitur eros est, ultrices in elementum eget, venenatis eget mauris. Sed sollicitudin, nibh sed varius aliquet, neque odio porttitor risus, at sollicitudin
참고 : 여러 줄의 단락 뒤에 나오는 모든 내용은 무시할 수 있습니다. 모든 그룹에는 문자, 숫자, 공백 및 구두점이 포함될 수 있습니다. 필자는 PHP를 사용하여 텍스트에 대한 몇 가지 추가 사후 처리 작업을 수행 할 것입니다.
작동하지 않았다 여전히 내 다른 시도보다 가까운했지만 처음 2 개 부분을 캡처하는 내 마지막 시도 의도 한대로였다 :
^((?:[a-zA-Z0-9!-~](?: (?!))?)+?)(?: {2,})((?:[a-zA-Z0-9!-~](?: (?!))?)+?)
내가이 파일의 시작 부분에 시작하는 것이라고 생각 , 여러 공간이 발생한 지점까지 모든 것을 캡처 한 다음 나머지 줄을 가져옵니다. 내가 샘플 텍스트에 모든
년대 있으리라 믿고있어
$pattern='~\A(.+?) {2,}(.+?)\R{2,}(.+?)\R{2,}(.+?)(?:\R{2,}|\Z)~s';
preg_match($pattern, $subject, $match);
See it in action on ideone.com
일정한 공간을 나타내며, 당신은 단지 우리가 더 있다는 것을 알 수 있었다을 사용 :
어떤 언어를 사용하고 있습니까? –
나는 모든 것을하기 위해 PHP를 사용하고 있습니다. – Tim
알기 만하면됩니다. 그것은 정규식 질문을 할 때 유용합니다. –