如何在java中使用regex用项目符号(所有类型)分割字符串



下面是我的文本

 Welcome to java programming 1) Oops concepts a) Encapsulation A) Abstraction I) Inheritance  • Polymorphism
2)sample program on java 1.Project source code 
sample text files • sample.txt b)sam.txt

我想根据下面的模式分割文本,并删除项目符号

1)any bullet 1)I)a)A)•
2)followed by space
3)followed by uppercase word

所以我想生成以下结果

Welcome to java programming 
Oops concepts 
Encapsulation 
Abstraction
Inheritance  
Polymorphism
sample program on java
Project source code
Please suggest me how to do this
sample text files
sample.txt

sam.txt感谢

以下基于正向前瞻的正则表达式应该适用于您:

String s = "Welcome to java programming 1) Oops concepts a) Encapsulation A) Abstraction I) Inheritance  • Polymorphism";
String[] arr = s.split("\s*([a-zA-Z\d][).]|•)\s*(?=[A-Z])");
System.out.println("Split => " + Arrays.toString(tok));

输出:

Split => [Welcome to java programming, Oops concepts, Encapsulation, Abstraction, Inheritance, Polymorphism]

这将起作用:

public static void main(String[] args) throws Exception {
    final String s = "Welcome to java programming 1) Oops concepts a) Encapsulation A) Abstraction I) Inheritance  • Polymorphism";
    final String[] split = s.split("\s*(\w\)|•)\s*");
    for (final String bullet : split) {
        System.out.println(bullet);
    }
}

正则表达式是

\s*(\w\)|•)\s*
  • \s*-零个或多个空格
  • (\w\)|•)-后面跟着括号或项目符号的数字或字母
  • \s*-零个或多个空格

输出:

Welcome to java programming
Oops concepts
Encapsulation
Abstraction
Inheritance
Polymorphism

你也可以试试

String str="Welcome to java programming 1) Oops concepts a) Encapsulation A) Abstraction I) Inheritance  • Polymorphism" ;
    String newStr=str.replaceAll("(?i)\s*([\d\w]\)|•)\s*"," ISseperatorIS ");
    String[] arr=newStr.split("ISseperatorIS ");
    for(String i:arr){
        System.out.println(i);
    }

输出

Welcome to java programming 
Oops concepts 
Encapsulation 
Abstraction 
Inheritance 
Polymorphism
public class Bullet {
public static void main(String [] args){
    String str = "Welcome to java programming 1) Oops concepts a) Encapsulation A) Abstraction I) Inheritance  • Polymorphism2)sample program on java 1.Project source code sample text files • sample.txt b)sam.txt";
    String [] bullet = str.split("[0-9]\)|[A-Z]\)|[a-z]\)|•|[0-9]\.");
    for(String i:bullet){
        System.out.println(i);
    }
}

}

输出<\p>

欢迎使用java编程
Oops概念
封装
摘要
继承
多态性
java上的示例程序
项目源代码示例文本文件
sample.txt
sam.txt

相关内容

最新更新