java - 如何在第二个点java之后找到第一个字符

标签 java regex string java-8

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

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

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

最佳答案

这个正则表达式怎么样?

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

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

正则表达式表示:以非贪婪方式 (.+?) 查找任何内容一次或多次,后面必须跟一个点 (\\. ),然后再以非贪婪的方式 (.+?) 后跟一个点 (\\.) 一次或多次。匹配后取第一组中的第一个单词字符 ((\\w))。

关于java - 如何在第二个点java之后找到第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52003152/

相关文章:

java - 多行模式的正则表达式可选匹配

php - 如何使用PHP从字符串中删除一些字符

c# - 字符串的实际长度

java - Web 应用程序连接到外部服务器?

Java - 如何检查整个数组的交集

java - 向 android 日历插入一个新条目

java - 为什么 hashmap Clear() 比指针重新分配释放更多的内存

java - 正则表达式,如何用 | 分割并避免 split when\is before

Javascript - 使用正则表达式拆分字符串

c++ - C++ 中用于数学表达式的正则表达式