我想將camelCase
或PascalCase
單詞分隔爲單獨的單詞集合。忽略現有空格將CamelCase轉換爲空格字符串
到目前爲止,我有:
Regex.Replace(value, @"(\B[A-Z]+?(?=[A-Z][^A-Z])|\B[A-Z]+?(?=[^A-Z]))", " $0", RegexOptions.Compiled);
它工作正常的轉換「TestWord」到「測試字」和離開單個詞不變,例如Testing
仍爲Testing
。
但是,ABCTest
得到轉換爲A B C Test
時,我更喜歡ABC Test
。
感謝你的回覆,但是當這個值已經有一個空格的時候它不起作用。它最終使空間加倍,即「ABC測試」變成「ABC測試」,同樣「ABCTest」變成「ABC測試」,即保持前導空間。 –
@CiaranMartin我會使用'Regex.match()'獲得上面列出的所有匹配的MatchCollection。然後,您可以將其轉換爲數組,並使用單個空格分隔符將其加入到字符串中。這使得你的正則表達式保留了很多邏輯並使代碼更具可讀性。 – thodic
@CiaranMartin請參閱我對C#實現的編輯。 – thodic