Ngay bây giờ, tôi đang thực hiện điều này với một tách, lát, và nổ:nổ UpperCasedCamelCase Upper cased Camel Trường hợp trong PHP
$exploded = implode(' ',array_slice(preg_split('/(?=[A-Z])/','ThisIsATest'),1));
//$exploded = "This Is A Test"
đẹp hơn phiên bản:
$capital_split = preg_split('/(?=[A-Z])/','ThisIsATest');
$blank_first_ignored = array_slice($capital_split,1);
$exploded = implode(' ',$blank_first_ignored);
Tuy nhiên, vấn đề là khi bạn có đầu vào như 'SometimesPDFFilesHappen'
, việc triển khai của tôi sẽ (không chính xác) diễn giải là 'Sometimes P D F Files Happen'
.
Làm cách nào để tôi có thể (đơn giản) lấy tập lệnh của tôi để ngưng tụ 'P D F'
thành 'PDF'
?
Chứng chỉ của tôi về thời điểm chia tách sẽ bắt đầu ở thủ đô đầu tiên và kết thúc một lần trước khi kết thúc, để phù hợp với từ tiếp theo.
Có, tôi biết có một số sự mơ hồ, như trong 'ThisIsAPDFTest'
, được hiểu là 'This Is APDF Test'
. Tuy nhiên, tôi không thể nghĩ ra một cách "thông minh" để tránh điều này, vì vậy nó là một thỏa hiệp có thể chấp nhận được.
Xem thêm: http://stackoverflow.com/questions/3103730/is-there-a-elegant-way-to-parse-a-word-and-add-spaces-before-capital-letters/3103795 # 3103795 –