Java JTextArea正则表达式和有序列表

Java JTextArea正则表达式和有序列表,java,regex,swing,list,jtextarea,Java,Regex,Swing,List,Jtextarea,我试图在我的JTextArea上使用的正则表达式有点问题。我试图做的是编写一个正则表达式,它将忽略任何有序列表,并将文本区域内容打印到控制台。列表的结构采用以下约定: 从一个新行开始 以数字开头 接着是一个句号 后跟空格或制表符 到目前为止,这是我正在使用的代码: String content = txt.getText(); String removeOrderdList = content.replaceAll("^(\\d+).[ \t]+", ""); 它在文本区域内容的第一行非常

我试图在我的
JTextArea
上使用的正则表达式有点问题。我试图做的是编写一个正则表达式,它将忽略任何有序列表,并将文本区域内容打印到控制台。列表的结构采用以下约定:

  • 从一个新行开始
  • 以数字开头
  • 接着是一个句号
  • 后跟空格或制表符
到目前为止,这是我正在使用的代码:

String content = txt.getText();
String removeOrderdList = content.replaceAll("^(\\d+).[ \t]+", "");

它在文本区域内容的第一行非常有效,但在其他行上却不行。我可以删除“^”,但这会影响包含句子的正常行。您可以使用多行标志
(?m)
。这使得
^
匹配每行的开头:

String content = "1. rgwfdfs \nnormal text \n3. fdhjsdf\nmore normal text";
System.out.println(content.replaceAll("(?m)^(\\d+)\\.[ \t]+.*\\n", ""));
印刷品

normal text 
more normal text
还要注意,您需要使用
\\.
来确保匹配的是句号而不是任何字符

[编辑]

我刚意识到你不是想忽略列表,而是忽略列表的第一部分。因此,要做到这一点,只需使用:

String content = "1. rgwfdfs \nnormal text \n3. fdhjsdf\nmore normal text";
System.out.println(content.replaceAll("(?m)^(\\d+).[ \t]+", ""));
这张照片是:

rgwfdfs 
normal text 
fdhjsdf
more normal text

使用这个

String content = txt.getText();
String removeOrderdList = content.replaceAll("(?m)^\\d+\.[ \t]+", "");