$query = "Hello #world What's #up"
$newquery = "world, up"
그래서 기본적으로 난 당신이 이상의 공간 루프에서 문자열을 분할 할 수 #PHP - #로 시작하는 단어를 얻을
$query = "Hello #world What's #up"
$newquery = "world, up"
그래서 기본적으로 난 당신이 이상의 공간 루프에서 문자열을 분할 할 수 #PHP - #로 시작하는 단어를 얻을
로 시작하지 않는 단어를 제거하는 wan't 문자열에서 다른 사람을 제거하는 방법 첫 번째 문자가 #
인지 확인합니다. 같은 : 당신은 또한 (?:\#([^\s]+))
같은 정규 표현식을 사용할 수 있습니다
$bits = explode(' ', $query);
$newquery = array();
foreach($bits as $bit){
if(strlen($bit) > 0 && $bit[0] === '#') $newquery[] = $bit;
}
$newquery = implode(', ', $newquery);
단어와 일치하는 얻을 수 있습니다.
편집 : 지적Scopey으로 내 초기 정규식을 향상시킬 수있다 (아래 변경) 및 반환 된 배열은 다차원이기 때문에 당신이 $matches[1]
를 사용해야합니다. 참조 : 각 요소를 통해 공간에
preg_match_all('/#([^#\s]+)/', $query, $matches);
$newquery = implode(', ', $matches[1]);
+1'preg_match_all' 대답을 위해, 그러나 정규 표현식은'# hello # test'와 같이 일치하는 것을 고려하여'/ # ([^ # \ s] +) /'로 개선 할 수 있습니다 서로에게. 'implode (',', $ matches [1]);'와 같이 일치를 내파해야합니다. regex 수식어로'g'를 사용할 수 없습니다. – Scopey
'g'한정자는 자바 스크립트에서만 작동한다고 생각합니다. 그러나, 나는 틀릴 수 있었다. –
좋은 캐치 @ 스코 피, 내 대답을 편집했습니다 –
분할 후 루프는 "#"로 시작하는지 : 같이 보일 수 http://php.net/manual/en/function.preg-match-all.php
합니다. – Dave