2011-04-29 4 views
0

문자열이 있는데 도달하려는 단어가 포함되어 있으며 구분 기호는 ,; 또는 공백으로 구성된 모든 문자열이 될 수 있습니다.PHP는 정규 표현식을 사용하여 단어를 분리합니다

;,osman,ali;, mehmet ;ahmet,ayse; , 

나는 단어 배열이나 내가 하나씩 사용할 수있는 모든 유형 alimehmetahmetosmanayse를 취할 필요가 : 여기

은 예입니다. 나는 preg 기능을 사용하여 그것을 시도했지만 알아낼 수 없었다.

도움이된다면 감사하겠습니다.

답변

7
$words = preg_split('/[,;\s]+/', $str, -1, PREG_SPLIT_NO_EMPTY); 
  • [,;\s]에 분할 [,] 내 정규식에 대한 것은 경기이에 포함 된 문자를 의미 문자 그룹입니다 그룹.
  • \s은 공백 문자 (공백, 탭, 줄 바꿈 등)와 일치합니다. 너무 많으면 공백으로 바꾸십시오 : [,; ].
  • +이 기호 또는 그룹 중 하나 이상과 일치 함을 의미합니다. DEMO

    http://www.regular-expressions.info/

정규 표현식을 배울 수있는 좋은 사이트입니다. 비 단어 문자에

+0

의 \들, 그러나 그것은 단지 공간이 아니라, 여전히 아마 이브라힘의 경우에 유효합니다. \ s 세트에는 탭과 새 행이 포함됩니다. - 아무도 혼란스러워하지 않습니다. –

+0

@JonathanFingland : 고마워요. 나는 약간의 정보를 추가했다. 내 경험으로'\ s'는 종종 더 적합합니다. –

3

당신은 preg_split을 사용하고 사용하려면,

$keywords = preg_split("/[;, ]+/", $yourstring); 
1

분할 :

$array=preg_split("/\W+/", $string); 
관련 문제