当前位置: 首页 > 面试题库 >

在Java中将CamelCase转换为camel_case的正则表达式

夹谷沛
2023-03-14
问题内容

我明白了为什么使用正则表达式的字符串转换一样没有给出所需的输出FooBarFoo_Bar这反而给了Foo_Bar_。我可以用String.substring做一些事情,substring(0, string.length() - 2)或者只是替换最后一个字符,但是我认为有一种更好的解决方案。

这是代码:

String regex = "([A-Z][a-z]+)";
String replacement = "$1_";

"CamelCaseToSomethingElse".replaceAll(regex, replacement);

/*
outputs: Camel_Case_To_Something_Else_
desired output: Camel_Case_To_Something_Else
*/

问题:正在寻找一种更整洁的方式来获得所需的输出?


问题答案:

看到这个问题,CaseFormat从番石榴

就您而言,类似:

CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "SomeInput");


 类似资料:
  • 我理解为什么在使用regex将这样的字符串转换为时没有给出所需的输出,而后者给出的是。我本可以用string.substring做一些事情,或者只是替换最后一个字符,但我认为对于这样的场景有更好的解决方案。 代码如下: 问题:正在寻找一种更整洁的方法来获得所需的输出?

  • 我试图将js代码转换为java版本,但对正则表达式有点困惑:在js中,我有一个类似于:testString的表达式。拆分(“/(\w*\d)/g”) 我可以在java中使用什么等效语言?我试着用匹配器得到同样的结果。find()和split函数,但结果不一样。

  • 问题内容: 我知道regEx在各种语言中都很常见…但是我在编写Java语法时遇到了麻烦。我有一个用JS编码的正则表达式; 如何用Java编写相同的代码? 我已经进口了 只是要补充一点,根据我的尝试,它说\ x是无效的转义字符。 问题答案: 将开头和结尾字符更改为,然后将其替换为。 与JavaScript,Perl和其他脚本语言不同,Java对正则表达式没有特殊的语法。相反,它们(通常)使用Java

  • 问题内容: 我目前正在将Web应用程序代码从PHP移植到JS。 我对此正则表达式有疑问。从PHP 这样使用 如何将其转换为在JS上工作? 先感谢您 问题答案: 没什么特别的。PHP regex语法与JavaScript中的语法非常相似: 您可以从 MDN的 本手册中找到有关JavaScript 中正 则表达式的更多信息:https : //developer.mozilla.org/en- US/

  • 问题内容: 您如何将该Perl正则表达式转换为Java? 编译时,对我而言它不匹配“ PattErn”,但失败 问题答案: 您如何将该Perl正则表达式转换为Java? 你不能 造成这种情况的原因很多。这里有一些: Java不像Perl那样支持正则表达式语言。它缺少字形支持(如和完整属性支持(如),缺少Unicode命名字符,没有分支重置运算符,在Java 7之前没有命名捕获组或逻辑转义,没有递归

  • 使用管道分隔的文件。目前,我使用记事本查找和替换REGEX模式,它用第5和第6个之间的空字符串替换所有行。我正在尝试以编程方式执行此过程,但是。NET不支持。我尝试了一些向后查找实例,但似乎无法理解它。