java - 使用正则表达式将第一个字符小写并空格下划线

标签 java regex pcre

我有这个字符串:

燃油附加费

我喜欢变成

燃油附加费

使用正则表达式。我的匹配正则表达式如下所示

\b([A-Z])|(\s)

它为我提供了我需要的两场比赛。

然后我尝试使用这个替换正则表达式

\L\1_\2

逻辑是第一个匹配项应更改为小写,第二个匹配项应替换为 _

但是我得到的结果是

f_uel_附加费

我看起来无法隔离第二场比赛。我需要在替换正则表达式中包含 _ 吗?

Here是我在 regex101.com 上尝试过的正则表达式的链接。目前正则表达式是 pcre,但我可能喜欢在 Java 中使用它。

最佳答案

\b([A-Z])([a-z]*)(\s)

\L\1\2_

因为您想要在前两个匹配后使用下划线。

关于java - 使用正则表达式将第一个字符小写并空格下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43964186/

相关文章:

php - 一句话中的5个连续单词用my​​sql数据库检查

php - 正则表达式 (?<!-) 是什么意思

macos - 如何使用 Homebrew 在 macOS 上安装支持 PCRE 的 Git?

java - 编写一个 ActionListener 以通过按下按钮来绘制形状

java - 在多个符号上拆分java中的字符串

java - 如何忽略 "--"但不忽略 "-"

正则表达式可以单独工作,但在 strsplit 中一起使用时则不起作用

java - 使用 NodeList 遍历 XML 中的所有元素

java - 用户登录时导航栏图像应该改变(JSF 2.0 + primefaces)

regex - Unix - 如何替换无效字符?