코드 샘플 입력이 :
$VideoTitles=[
'Kilian à Dijon #4 • Vlog #2 • Primark again !? - YouTube',
'Funfesty on Twitter: "Je commence à avoir mal à la tête à force',
'Sia 2017 Cheap Thrills 2017 live '
];
$VideoTitles=preg_replace('/[^ -\x{2122}]\s+|\s*[^ -\x{2122}]/u','',$VideoTitles); // remove out of range characters and whitespace character on one side only
var_export($VideoTitles);
출력 :
array (
0 => 'Kilian à Dijon #4 • Vlog #2 • Primark again !? - YouTube',
1 => 'Funfesty on Twitter: "Je commence à avoir mal à la tête à force',
2 => 'Sia 2017 Cheap Thrills 2017 live',
)
상기 정규식 패턴 \x20-\x2122
행 (공간트레이드 마크 기호에) 문자의 범위를 사용한다. 이 범위는 악센트가있는 문자 및 영어 이외의 문자가 포함 된 대다수의 단어 관련 문자를 포함해야하므로이 범위를 선택했습니다. (이 경우에는 단어와 관련이없는 문자가 많이 포함되어 있습니다. 예 : /[^\x{20}-\x{60}\x{7B}-\x{FF}]/ui
- 공백 ~ 억음 악센트가 및 인 경우이 검색 결과는 민감하지 않게 구별됩니다. 브래킷이 범위가 불필요하게 관대하거나 처리하는 데 시간이 너무 오래 걸리는 것을 발견하면 분음와 라틴어 소문자 y)를
에 적절한 문자 범위에 대한 자신의 결정을 내릴 수 있습니다.
는 예를 들어, 당신은이 훨씬 가볍고하지만 /[^\x20-\x7E]/u
( 물결 에 공간에서) 덜 관대 한 것 같아서. 그러나, 위의 두 언어 중 하나에 적용하면 $VideoTitles
정당한 문자를 제거하여 텍스트를 조작합니다.
여기에 언급 된 범위와 그 범위를 벗어나는 내용을 이해하는 데 도움이되는 menu of characters and their unicode numbers입니다.
* 닫는 구분 기호 뒤에 유니 코드 플래그 u
을 포함해야합니다.
완성도를 위해, 나는 두 개의 그림 이모티콘을 제거하기위한 문자/좁은 솔루션이 될 것 말해야한다 :이 그림 이모티콘 "을 했 보드 (U + 1F3AC)"와 "헤드폰이라고
$VideoTitle=preg_replace('/[\x{1F3A7}\x{1F3AC}]/u','',$VideoTitle); // omit 2 emojis
(U + 1F3A7).