我正在尝试在我的JTextArea
上使用正则表达式时出现轻微问题。我正在尝试编写一个正则表达式,它将忽略任何有序列表并将文本区域内容打印到控制台。列表的结构遵循以下约定:
到目前为止,这是我正在使用的代码:
String content = txt.getText();
String removeOrderdList = content.replaceAll("^(\\d+).[ \t]+", "");
它在文本区域内容的第一行上很有用,但在其他行上却没有。我可以删除“^”,但这将影响具有句子的普通行
答案 0 :(得分:1)
使用此
String content = txt.getText();
String removeOrderdList = content.replaceAll("(?m)^\\d+\.[ \t]+", "");
答案 1 :(得分:0)
您可以使用多行标记(?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