w4n*_*ust 6 java string replace
我有这样的"HelloWorldMyNameIsCarl"的字符串,我希望它成为像"Hello_World_My_Name_Is_Carl".我怎样才能做到这一点?
Pet*_*ler 35
是的,正则表达式可以为您做到这一点:
"HelloWorldMyNameIsCarl".replaceAll("(.)([A-Z])", "$1_$2")
Run Code Online (Sandbox Code Playgroud)
表达式[A-Z]将匹配每个大写字母并将其放入第二个组.您需要第一组.以避免替换第一个'H'.
正如Piligrim指出的那样,这种解决方案不适用于任意语言.要捕获Unicode标准定义的任何大写字母,我们需要Unicode 4.1子属性 \p{Lu},它匹配所有大写字母.所以更通用的解决方案看起来像
"HelloWorldMyNameIsCarl".replaceAll("(.)(\\p{Lu})", "$1_$2")
Run Code Online (Sandbox Code Playgroud)
谢谢Piligrim.
| 归档时间: |
|
| 查看次数: |
8290 次 |
| 最近记录: |