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]+", "");