java - 匹配出现在特定模式之后的字符串

标签 java regex string split

我想匹配在某个模式之后出现的字符串,但我无法想出一个正则表达式来做到这一点(我正在使用 Java)。

例如,假设我有这个字符串,

caa,abb,ksmf,fsksf,fkfs,admkf

并且我希望我的正则表达式仅匹配那些以 abb 为前缀的逗号。我怎么做?是否可以使用正则表达式?

如果我使用正则表达式 abb, 它会匹配整个字符串 abb, 但我只想匹配后面的逗号。

我问这个是因为我想在接受正则表达式的 split 方法中使用这个正则表达式。如果我将 abb, 作为正则表达式传递,它会将字符串 abb, 视为分隔符,而不是我想要的 ,

任何帮助将不胜感激。

最佳答案

        String test = "caa,abb,ksmf,fsksf,fkfs,admkf";
        String regex = "(?<=abb),";
        String[] split = test.split(regex);
        for(String s : split){
            System.out.println(s);
        }

输出:
caa,abb
ksmf、fsksf、fkfs、admkf

请参阅此处了解信息:

https://www.regular-expressions.info/lookaround.html

关于java - 匹配出现在特定模式之后的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53108764/

相关文章:

java - 使用Seek Bar缩放android Canvas

java - Spring 柠檬 BeanCurrentlyInCreationException : Error creating bean

PHP 正则表达式匹配!或 * 字符串中的任意位置

java - 由于不变性,字符串线程安全?

c++ - 如何在 C/C++ 中(取消)转义字符串?

c# - 从方法泛型推断类型

java - 使用共享首选项更改字体样式

python - Key=Val 使用正则表达式匹配

javascript - 从字符串中提取信息

c++ - 使用 stringstream 打印数字但是当我包括时,例如 1.3067d,但它仍然打印 1.3067