파일 인코딩이 utf-8 이라면 다음과 같이 하면
한글과, 영어, 숫자만 뽑아올수 있습니다.
<?php $pattern = '`[\w0-9a-z]+`iu'; $string = '@@@안녕 123 abc 하이1a, 1a. ㅎㅎ ????'; preg_match_all($pattern, $string, $m); print_r($m); /* Array ( [0] => Array ( [0] => 안녕 [1] => 123 [2] => abc [3] => 하이1a [4] => 1a [5] => ㅎㅎ ) ) */
해당 패턴은 구미권 사람들이 쓰는 것 같습니다. ê, í 등을 매칭하게 해놓았네요.
그리고 해당 패턴은 그룹을 지어놓고 나서 그 그룹이 1개 이상 나와야 되는 정규식입니다. 아마 매치될 것이 없을 수 있습니다.
혹시 원하시는 regex가 이런 것은 아닌지 체크해 보세요. https://regex101.com/r/wcsmYR/1/
페이지에서 키보드에서 입력되는 값들만 처리해야 할 경우가 생겼습니다..
(예 : A-Z, a-z, 0-9, 한글, 키보드에 있는 특수문자([],{},.)
컨트롤러에서 다음과 같이 정규식을 사용해서 해결하려고 패턴을 정의하고
$pattern = '/([\xEA-\xED][\x80-\xBF]{2}|[a-zA-Z0-9])+/';
preg_match_all($pattern , trim($text), $match);
을 하고서 $match값을 찍었더니 $match값이 빈 값이 나옵니다.
정규식이 잘못된 건지, 아니면 넘기는 값 처리가 잘못된 건지 헷갈려서
여러분들의 도움을 구합니다.