2012-09-23 2 views
1

단어 대체 :

$str = "Horosho byt' tihoney 23 Sen 2012 14:00 | 20:20 | 00:30 24 Sen 2012 09:30 | 14:00 Obitel' zla: Vozmezdie 3D 23 Sen 2012 16:10 | 20:25 | 22:25 Osobo opasny 23 Sen 2012 18:00 24 Sen 2012 11:30 | 18:00 25 Sen 2012 11:30 | 18:00 26 Sen 2012 11:30 | 18:00 Patrul' 23 Sen 2012 20:10 | 22:20 24 Sen 2012 11:50 | 20:10"

을 내가 <br> 태그 단어를 포위 할을; 예를 들어 Horosho byt' tihoney<br>Horosho byt' tihoney<br>이되고 Obitel' zla: Vozmezdie 3D<br>Obitel' zla: Vozmezdie 3D<br>이됩니다. 내가 지금까지 무엇을 가지고

:

preg_replace("/(?<=\s)([\p{L}*?]{3,})(?=\s[0-9]{2}\s)/u", "<br>$1<br>", $str); 
+1

변경하려는 텍스트가 분명하도록 게시물의 내용을 편집하는 것뿐만 아니라 사용중인 언어의 이름으로이 게시물에 태그를 지정 하시겠습니까? 현재
태그가 실제로 평가되고 새로운 행을 만듭니다. 예를 들어 텍스트를 백틱으로 둘러싸면이 문제를 없앨 수 있습니다. – Maz

+1

2'
'이 (가) 정말로 필요합니까? 하나는 충분해야한다고 생각합니다. – nhahtdh

+1

'Osobo opasny'와'Patrul'도 일치시켜야합니까? – Kash

답변

0

좋아, 그래서 여기 내 솔루션입니다. 그것은 정확히 당신이 지정한 것은 아니지만 문제를 해결합니다. 날짜와 시간은 이름보다 훨씬 규칙적으로 보입니다 (후자는 숫자, 아포스트로피 및 콜론을 포함 할 수 있기 때문에 더 많은 것을 알 수 있습니다). 그래서 <br/>의 날짜와 시간을 묶는 것이 처음에는 바로 <br/>을 추가하고 끝에서 하나를 제거해야한다는 것을 알았지 만 문제는 그다지 적지 않습니다. 날짜와 시간의 문자열을 찾아 그들 (및 주변 공간) <br/>에 둘러싸 정규식 : 나는 날짜의 날이 1 개 또는 2 자리가있을 수 있다고 가정

$newStr = preg_replace("/(\s\d{1,2}\s[A-Z][a-z][a-z]\s\d{4}|\s\d{2}:\d{2}|\s\|)+\s?/", "<br/>$0<br/>", $str); 

합니다 (예를 들어, 문자열에서 말할 수 없습니다) 그리고 귀하의 모든 달은 대문자와 소문자로 구분됩니다.

편집 : 나는 ? 마지막에 문자열에서 마지막으로 작동하도록합니다.

+0

고맙습니다. 나는 날짜와 시간을 꼬리표로 묶는 것을 추측 할 수 없었다. –

+0

문제 없습니다. 이 질문에 대한 답변이 있으면 답변을 수락하고/또는 upvote하십시오. –

+0

누구나 br 태그로 모든 단어 (날짜와 시간뿐만 아니라)를 감싸는 방법을 아는 사람이 있습니까? –

관련 문제