두 단어가 비슷하게 결합되어 있습니다. KitnerCoster
중간에 공백을 추가하고 싶습니다. 두 단어가 대문자로 나뉘어져 있고 유일한 차이점이 있다면 어떤 종류의 속임수라도 알 수 있습니다. 내 첫 번째 재판이 정규 표현식을 작성하는 그러나 당신이두 개의 캡쳐 된 단어 사이에 공백을 삽입 하시겠습니까?
s/([a-z])([A-Z])/'$1 $2'/g
같은 것을 할 수있는 정규 표현식을 사용
는두 단어가 비슷하게 결합되어 있습니다. KitnerCoster
중간에 공백을 추가하고 싶습니다. 두 단어가 대문자로 나뉘어져 있고 유일한 차이점이 있다면 어떤 종류의 속임수라도 알 수 있습니다. 내 첫 번째 재판이 정규 표현식을 작성하는 그러나 당신이두 개의 캡쳐 된 단어 사이에 공백을 삽입 하시겠습니까?
s/([a-z])([A-Z])/'$1 $2'/g
같은 것을 할 수있는 정규 표현식을 사용
는첫 단어가 대문자이면 신경 써야합니까? 그렇지 않다면, 당신은 내가 단지 all Unicode characters 일치하는 ASCII 문자와 사람에 맞는 버전을 준
// ASCII
preg_replace('/\b([A-Z]\S*[a-z])([A-Z])/', '$1 $2', $string)
preg_replace('/\b([[:upper:]]\S*[[:lower:]])([[:upper:]])/', '$1 $2', $string)
// Unicode (UTF-8)
preg_replace('/\b(\p{Lu}\S*\p{Ll})(\p{Lu})/u', '$1 $2', $string)
다음 수행 관리를 수행하고 혼자 kitnerCostner
을 KitnerCostner
를 해결하지만, 남겨 둡니다
// ASCII
preg_replace('/([a-z])([A-Z])/', '$1 $2', $string)
preg_replace('/([[:lower:]])([[:upper:]])/', '$1 $2', $string)
// Unicode (UTF-8)
preg_replace('/(\p{Ll})(\p{Lu})/u', '$1 $2', $string)
을 . 유니 코드는 PHP 5.1.0에서 사용할 수 있습니다.
보통 그래서 당신은 하나 또는 다른 부분을 수정해야 할 수도 실패합니다.
어떻게 1 문자 길이의 단어를 처리 하시겠습니까? FooXBar에서 'X'처럼? X는 위의 정규식에 의해 별도의 단어로 인식되지 않습니다.
+1 왜냐하면 나는 첫 번째 시험에서 작동하는 정규식을 너무나 많이 쓰고 있기 때문입니다. –
preg_compatible regex로 바꾸십시오. (해결책은 괜찮지 만, PHP에 관한 질문은 : preg_replace ('/ ([az]) /', '$ 1 $ 2', $ string);'. .. – ircmaxell