java中用于跳过拆分的正则表达式

java中用于跳过拆分的正则表达式,java,regex,Java,Regex,假设我有一条像这样的线 40 ,O12,O23,O34,O2 在40和逗号之间有一个制表符 我需要一个输出的正则表达式 O12,O23,O34,O2 一串 有什么建议吗?不要使用正则表达式。只需找到\t的第一个匹配项,并从该匹配项的末尾对原始字符串进行子串 String text = "40\t,O12,O23,O34,O2"; System.out.println(text.substring(text.indexOf("\t,") + 2)); indexOf方法返回字符串中第一个

假设我有一条像这样的线

40  ,O12,O23,O34,O2
在40和逗号之间有一个制表符

我需要一个输出的正则表达式

O12,O23,O34,O2 
一串


有什么建议吗?

不要使用正则表达式。只需找到\t的第一个匹配项,并从该匹配项的末尾对原始字符串进行子串

String text = "40\t,O12,O23,O34,O2";
System.out.println(text.substring(text.indexOf("\t,") + 2));

indexOf方法返回字符串中第一个逗号处的索引。添加1后,子字符串的开头将超过逗号

line.substring(a.indexOf(",")+1);

只需匹配从开始到制表符的所有字符加上以下字符即可,。用空字符串替换匹配的字符将获得所需的输出

String text = "40\t,O12,O23,O34,O2";
System.out.println(text.replaceFirst(".*\t,", ""));


一个简单的解决方案就是不使用第一个。
String text = "40\t,O12,O23,O34,O2";
System.out.println(text.replaceFirst(".*\t,", ""));
String text = "40\t,O12,O23,O34,O2";
System.out.println(text.replaceAll("^.*\t,", ""));
String text = "40\t,O12,O23,O34,O2";
System.out.println(text.replaceAll("^.*?\t,", ""));