2013-02-19 2 views
3

문자열에서 특수 문자를 제거하고 문자를 하이픈으로 대체하는 PHP reg 표현식이 있습니다. 문제는 두 개의 특수 문자가 서로 이어지는 경우 두 개의 하이픈을 얻게된다는 것입니다. 예를 들어 [email protected]%^ 텍스트를 입력하면 test-hhh--이 표시되고 [email protected]%^kkk을 입력하면 test-hhh--kkk이 표시됩니다. 나는 내 표정이 나를 test-hhh 주길 바란다. 두 개의 유사한 하이픈 뒤에 문자열 하이픈을 추가하고 싶습니다. 내 코드는 기본적으로 당신은 반복 수정을 지정해야합니다, 여기 http://www.regular-expressions.info/repeat.html 유용한 정보를 찾을 수 있습니다 여기에두 개의 유사한 문자와 다른 후행 문자를 제거하는 표현

$slug = preg_replace('/[^a-zA-Z0-9]/', '-', $slug); 

답변

2

먼저 당신의 문자열이 정규식을 적용

둘째 당신은 여분의 인수로 하이픈 문자로 오른쪽 트림 (또는 정기적를) 적용됩니다.

$slug = trim($slug, '-'); 
관련 문제