DigitalRoss से जवाब केमलकेस में एम्बेडेड के संक्षिप्त रूप को पहचान नहीं होगा। उदाहरण के लिए, यह "माई एचटीएमएल ट्रिक्स" को "माई एच टी एम एल ट्रिक्स" में "माई एच टी एम एल ट्रिक्स" में विभाजित करेगा।
कि
"MyHTMLTricks" \
.gsub(/([[:lower:]\\d])([[:upper:]])/, '\1 \2') \
.gsub(/([^-\\d])(\\d[-\\d]*(|$))/,'\1 \2') \
.gsub(/([[:upper:]])([[:upper:]][[:lower:]\\d])/, '\1 \2')
=> "My HTML Tricks"
दूसरी बात यह है कि मैं इस दृष्टिकोण के बारे में की तरह है यह स्ट्रिंग छोड़ देता है:
यहाँ PmWiki में AsSpaced()
कार्य के आधार पर एक और विकल्प है, जो इस तरह के मामलों के प्रति संवेदनशील होने का एक बहुत अच्छा काम करता है एक स्ट्रिंग, इसे एक सरणी में बदलने की बजाय। यदि आप वास्तव में सरणी चाहते हैं, तो बस अंत में एक विभाजन जोड़ें।
"MyHTMLTricks" \
.gsub(/([[:lower:]\\d])([[:upper:]])/, '\1 \2') \
.gsub(/([^-\\d])(\\d[-\\d]*(|$))/,'\1 \2') \
.gsub(/([[:upper:]])([[:upper:]][[:lower:]\\d])/, '\1 \2') \
.split
=> ["My", "HTML", "Tricks"]
रिकॉर्ड के लिए, यहां PmWiki से मूल PHP कोड है।
function AsSpaced($text) {
$text = preg_replace("/([[:lower:]\\d])([[:upper:]])/", '$1 $2', $text);
$text = preg_replace('/([^-\\d])(\\d[-\\d]*(|$))/', '$1 $2', $text);
return preg_replace("/([[:upper:]])([[:upper:]][[:lower:]\\d])/", '$1 $2', $text);
}
आप'IIsanarrowImageOfHIV 'के साथ क्या करना चाहते हैं? एन के साथ जुड़ें या एचआईवी को विभाजित करें? –