你好,我想修改任何字符串为大写Underscore所做的有效变量。Java替换字符串的匹配部分中的字符
因此,举例来说,如果我有以下几点:
configGlossary:poweredByIcon -> CONFIG_GLOSSARY_POWERED_BY_ICON
124$32SomeSampleString_thatI_have -> SOME_SAMPLE_STRING_THAT_I_HAVE
myJSP -> MY_JSP but my regex produces MY_J_S_P
首先我使用一个函数来创建大写的驼峰字符串下划线。
到目前为止,除了最后一个结果示例以及字符串开始处有数字时,我已经能够实现所需结果。我有以下正则表达式。这将删除多个下划线(如果有的话)。
String regex = "s/^[^a-zA-Z_]+|[^a-zA-Z_0-9]";
String result = variableName.replaceAll(regex, "_").replaceAll("\\_+", "_");
所以我的问题是如何产生所需的结果。有没有一个正则表达式可以让我成为任何字符串的有效变量?
有没有办法解决最后的样品?
“是否有正则表达式可以让我成为任何字符串的有效变量?”号码 – FailedDev
好,那么任何一种方法?样品?图书馆?我宁愿使用经过测试的东西,而不是创建我的东西,然后解决它可能存在的任何可能的问题。 – DArkO
问题在于你的问题中的“任何”。任何东西都可以是字面意思。您需要提供涵盖全部或更多测试用例的更具体规则。那么解决方案可能是可行的。 – FailedDev