使用正则表达式将第一个字符设为小写并 space 下划线

Make first character lowercase and space underscore with regex

我有这个字符串:

Fuel surcharge

我喜欢变成

fuel_surcharge

使用正则表达式。我匹配的正则表达式看起来像这样

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

它给了我需要的两场比赛。

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

\L_

按照第一个匹配改成小写,第二个匹配替换成_

的逻辑

但是我得到的结果是

f_uel_ surcharge

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

Here 是我在 regex101.com 上试过的正则表达式的 link。目前正则表达式是 pcre 但我可能喜欢在 Java.

中使用它
\b([A-Z])([a-z]*)(\s)

\L_

因为你想要在前 两个 匹配后的下划线。