首页 > 解决方案 > 如何在第二个点java之后找到第一个字符

问题描述

你有什么想法我怎么能在字符串的第二个点之后得到第一个字符。

String str1 = "test.1231.asdasd.cccc.2.a.2";
String str2 = "aaa.1.22224.sadsada";

在第一种情况下,我应该得到aand 在第二种情况下2。我想过用点分割字符串,并提取第三个元素的第一个字符。但这似乎很复杂,我认为有更好的方法。

标签: javaregexstringjava-8

解决方案


这个正则表达式怎么样?

Pattern p = Pattern.compile(".+?\\..+?\\.(\\w)");
Matcher m = p.matcher(str1);

if (m.find()) {
     System.out.println(m.group(1));
}

正则表达式说:以非贪婪方式 ( ) 找到任何东西一次或多次,.+?后面必须跟一个点 ( \\.),而不是以非贪婪方式 ( .+?) 后跟一个点 ( \\.)找到任何东西一次或多次. 匹配后,取第一组中的第一个单词字符 ( (\\w))。


推荐阅读