java - 如何在第二个点java之后找到第一个字符
问题描述
你有什么想法我怎么能在字符串的第二个点之后得到第一个字符。
String str1 = "test.1231.asdasd.cccc.2.a.2";
String str2 = "aaa.1.22224.sadsada";
在第一种情况下,我应该得到a
and 在第二种情况下2
。我想过用点分割字符串,并提取第三个元素的第一个字符。但这似乎很复杂,我认为有更好的方法。
解决方案
这个正则表达式怎么样?
Pattern p = Pattern.compile(".+?\\..+?\\.(\\w)");
Matcher m = p.matcher(str1);
if (m.find()) {
System.out.println(m.group(1));
}
正则表达式说:以非贪婪方式 ( ) 找到任何东西一次或多次,.+?
后面必须跟一个点 ( \\.
),而不是以非贪婪方式 ( .+?
) 后跟一个点 ( \\.
)找到任何东西一次或多次. 匹配后,取第一组中的第一个单词字符 ( (\\w)
)。
推荐阅读
- python - 安装在 ubuntu 和 windows 上的 python 中 listdir 的不同行为
- r - 使用 R 中的分段函数加速分段回归的迭代
- jquery - 无法动态定位类
- javascript - switch 语句中的常见情况
- vb.net - 没有定义额外结构或函数的 New List(Of structure) 是否有内联变体?
- sql - 如何通过 Sql-Server 查询在 Parent_Id 和 Child_Id 中明智地排列表数据
- css - 如何在输入字段顶部打开 pickadate.js 日历
- jquery - 如何获取 Jquery Datatable 的所有单元格值?
- php - 在 Delphi 和 PHP 中使用“相同”方法加密时的不同结果
- java - 如何使用 JSOUP/Rest Assured Api 打开 SSL 证书并获取登录响应?