我想编写一个将CamelCase转换为人类可读名称的方法.
这是测试用例:
public void testSplitCamelCase() {
assertEquals("lowercase", splitCamelCase("lowercase"));
assertEquals("Class", splitCamelCase("Class"));
assertEquals("My Class", splitCamelCase("MyClass"));
assertEquals("HTML", splitCamelCase("HTML"));
assertEquals("PDF Loader", splitCamelCase("PDFLoader"));
assertEquals("A String", splitCamelCase("AString"));
assertEquals("Simple XML Parser", splitCamelCase("SimpleXMLParser"));
assertEquals("GL 11 Version", splitCamelCase("GL11Version"));
}
Run Code Online (Sandbox Code Playgroud) 这都是asp.net c#.
我有一个枚举
public enum ControlSelectionType
{
NotApplicable = 1,
SingleSelectRadioButtons = 2,
SingleSelectDropDownList = 3,
MultiSelectCheckBox = 4,
MultiSelectListBox = 5
}
Run Code Online (Sandbox Code Playgroud)
它的数值存储在我的数据库中.我在数据网格中显示此值.
<asp:boundcolumn datafield="ControlSelectionTypeId" headertext="Control Type"></asp:boundcolumn>
Run Code Online (Sandbox Code Playgroud)
ID对用户没有任何意义,因此我已使用以下内容将boundcolumn更改为模板列.
<asp:TemplateColumn>
<ItemTemplate>
<%# Enum.Parse(typeof(ControlSelectionType), DataBinder.Eval(Container.DataItem, "ControlSelectionTypeId").ToString()).ToString()%>
</ItemTemplate>
</asp:TemplateColumn>
Run Code Online (Sandbox Code Playgroud)
这样做要好得多......但是,如果有一个简单的函数我可以放在Enum周围,通过Camel案例将它拆分,以便在数据网格中很好地包装它.
注意:我完全清楚有更好的方法可以做到这一切.这个屏幕纯粹是在内部使用的,我只想快速入侵以便更好地显示它.
我在.todo文件中搜索以下单词:
ZshTabCompletionBackward
MacTerminalIterm
Run Code Online (Sandbox Code Playgroud)
我做了以下正则表达式
[A-Z]{1}[a-z]*[A-Z]{1}[a-z]*
Run Code Online (Sandbox Code Playgroud)
但是,这还不够,因为它只找到以下类型的单词
ZshTab
Run Code Online (Sandbox Code Playgroud)
在伪代码中,我试图制作以下正则表达式
([A-Z]{1}[a-z]*[A-Z]{1}[a-z]*){1-9}
Run Code Online (Sandbox Code Playgroud)
你如何在Perl中制作上述正则表达式?