안녕 지원 문자열에서 "."
과 같습니다.PHP 모든 언어에 대한 모든 영숫자가 아닌 문자를 대체 내가 실제로이 같은 문자열에서 모든 영숫자가 아닌 문자를 교체하려고 해요
두 번째 난이 방법으로 모든 사용자의 언어에 대한 multybite 지원을 추가하고 싶습니다.
어떻게 할 수 있습니까?
appriciated 어떤 도움 덕분에 많은. 그것은 -
와 .
를 교체해야
안녕 지원 문자열에서 "."
과 같습니다.PHP 모든 언어에 대한 모든 영숫자가 아닌 문자를 대체 내가 실제로이 같은 문자열에서 모든 영숫자가 아닌 문자를 교체하려고 해요
두 번째 난이 방법으로 모든 사용자의 언어에 대한 multybite 지원을 추가하고 싶습니다.
어떻게 할 수 있습니까?
appriciated 어떤 도움 덕분에 많은. 그것은 -
와 .
를 교체해야
을 다음
preg_replace('/[^\p{L}0-9\s]+/u', '-', $string);
을 u
플래그가 사용되는 경우 정규 표현식 \p{L}
(및 \p{Letter}
)은 유니 코드 문자 범주의 모든 문자와 일치합니다.
, 당신은 아마 처음에 데이터를 혼합하고 있습니다.
멀티 바이트 지원에 관해서는, u
수정을 추가하고, 즉 \p{Letter}
, PCRE properties 조사 : 시도
$replaced = preg_replace('~[^0-9\p{Letter}]+~iu', '-', $string);
이 표현은 점을 대체합니다. 멀티 바이트의 경우 u
수정 자 (UTF-8)를 사용하십시오. ,
$result = preg_replace('~\P{Xan}++~u', '-', $string);
\p{Xan}
모든 언어에서 숫자와 문자를 포함하여 \P{Xan}
그 모든 편지 또는 숫자가 아닌 포함
OMG의 친구는 내가 – sbaaaang
가장 짧은 방법입니다.
감사 @Ziarno() 미안 업데이트 질문하지만 (mb_ereg_replace에 대해) 그렇지 더 mb_ereg_replace를 사용? preg_replace()로 전환해야하는지, 왜 그러는지 말해 줄 수 있습니까? : P – sbaaaang
@badbetonbreakbutbedbackbone : 아니요. 끝에있는 u 수정자는 패턴이 preg_ * 함수를 사용하여 유니 코드를 처리 할 수있게합니다. IMHO, mb_ereg 함수가 사라집니다. preg_ * 함수는 더 빠르며 유니 코드를 지원합니다. –
감사합니다. 나는 그것을 테스트하고 있습니다;) – sbaaaang
마침표를 캐릭터 목록에 추가하기 만하면됩니다.^a-z0-9 \ s. --- "멀티 바이트 지원 추가"에 관해서는, 악센트 등을 바꾸는 것을 의미하는 경우, é => e와 같은 거대한 배열을 만드는 것 외에는 다른 방법을 안다. 그리고 그것을 strtr에 사용한다. – Ariane
@Ariane 괜찮습니까? 나는 이미 기간이 있다는 것을 의미한다!? 펄 호환 정규 표현식 ('preg') 확장 정규 표현식 ('ereg')보다 더 강력 : – sbaaaang