0
데이터를 추출해야하는 두 개의 문자열이 있습니다. 이 작업을 수행하려면 preg_replace
을 사용합니다. 그러나, 나는 마지막으로 \s\:\:
가 일치 할 수 있도록 그것을 만드는 방법을 모르겠다. {0,}
을 시도했지만 첫 번째 문자열과 일치하지 않으며 마지막 문자열이 일치하지 않습니다.정규 표현식, 하위 패턴 작성
$strings = array(
'13.02 - foobar1 bla bla :: 08.03.2013 - 23.12.2013',
'06.05 21:00 - " foobar2 bla bla "',
)
foreach($strings as $data){
$pattern = '/^(\d){2}\.(\d){2}\s?(\d){0,2}(\:)?(\d){0,2}\s\-(.*)(\s\:\:.*)?/i';
echo preg_replace($pattern, '$6', $data);
}
나는 최종 출력 이러한 두 개의 문자열을 얻을 것으로 예상 :
"foobar1 bla bla"
"" foobar2 bla bla ""
현재 코드가 제대로 작동하고 두 문자열을 모두 일치시킵니다. [this] (http://codepad.org/h0ofNAuO)를 확인하십시오. 그러나'$ strings'의 선언에서';'가 누락되었습니다. –
첫 번째 문자열의 경우 ":: 08.03.2013 - 23.12.2013"부분을 제거해야합니다. – WraithLux
입력 예제와 정확한 예상 출력을 사용하면 많은 도움이됩니다. – Enissay