android - 正则表达式将 kotlin syntetic 迁移到 viewBinding
问题描述
使用 kotlin-syntetic 从 xml 调用布局 id 到 Activity 可能与来自 xml 的 id 相同
但是当从 kotlin-syntetic 迁移到 viewBinding 时,我需要将 activity.kt 文件中的每个布局 ID 用法从tv_someword_middle_last
更改为tvSomewordMiddleLast
我想知道如何针对这种模式使用正则表达式在 android studio 中“全部替换”?
这应该像
find: (_)(a-z)
replace: (A-Z)
但我仍然不知道该怎么做
谢谢你..
解决方案
如果 Android Studio 搜索和替换功能支持替换模式中的大小写更改运算符,您可以使用
_([a-z])
并替换为\U$1
. 请参阅此正则表达式演示。没有被_
捕获,它只是匹配。([a-z])
创建一个 ID 为 1 的捕获组(可以$1
从替换模式中引用它),并匹配一个小写的 ASCII 字母。替换中的 - 如果支持的\U
话 - 将替换右侧的部分变为大写。
否则,您可以使用以下Java 代码:
String example = "tv_someword_middle_last";
Matcher m = Pattern.compile("_([a-z])").matcher(example);
example = m.replaceAll(r -> m.group(1).toUpperCase() );
System.out.println( example );
// => tvSomewordMiddleLast
推荐阅读
- typescript - 从没有属性或属性列表的接口创建类型
- sql - 用户同时更新同一行 SQL Server
- python - 仅替换字符串的结尾
- php - 将 php 网页发送到文件夹并将内容显示为 html
- vb.net - 如何将 SQL 数据库中最后一行的选定单元格值放入两个标签中?
- hazelcast - Hazelcast 和对自定义序列化程序的需求;在创建服务器时有效,但在连接到现有服务器时无效
- python - 为Windows制作一个可执行的kivy文件,pyinstaller有问题
- java - Libgdx 碰撞检测后删除对象
- ruby - 将输入参数传递给 ruby 编写的 shell?
- r - 基于相同的列名或 R 中的单独 df 聚合/求和/计数值