如何在Java中生成与正则表达式匹配的字符串数组列表?

如何在Java中生成与正则表达式匹配的字符串数组列表?,java,arrays,regex,list,arraylist,Java,Arrays,Regex,List,Arraylist,我正在尝试从.txt文件中过滤一些信息 应该读取该文件,我想将所有与'AT.*.1'匹配的字符串放入ArrayList中 txt文件的示例: Test text AT5X00.1 WednesdayAT5.1 January 26thAT9H99.1 AT6P6.1 然后我想要这样一个ArrayList: [AT5X00.1, AT5.1, AT9H99.1, AT6P6.1] 我在编程方面不是很有经验,所以可能很容易,但我被卡住了。这就是我迄今为止所尝试的: JFil

我正在尝试从.txt文件中过滤一些信息

应该读取该文件,我想将所有与'AT.*.1'匹配的字符串放入ArrayList中

txt文件的示例:

Test text AT5X00.1 WednesdayAT5.1 January 26thAT9H99.1    AT6P6.1
然后我想要这样一个ArrayList:

[AT5X00.1, AT5.1, AT9H99.1, AT6P6.1]
我在编程方面不是很有经验,所以可能很容易,但我被卡住了。这就是我迄今为止所尝试的:

        JFileChooser chooser = new JFileChooser(); 
        chooser.showOpenDialog(null);                             
        File file  = chooser.getSelectedFile();
        String filename = file.getAbsolutePath();
        textfield1.setText(filename);       
        String arr = new String();
           try {
            Scanner input = new Scanner (file);
            while (input.hasNext()) {
                textarea1.setText(input.nextLine());
            //input.close();              
                }
           } catch (FileNotFoundException ex) {
            Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
           }
           String content = textarea1.getText();
           ArrayList<String> myList = new ArrayList<String>Arrays.asList(content.split("AT")));
JFileChooser chooser=newjfilechooser();
chooser.showOpenDialog(空);
File File=chooser.getSelectedFile();
字符串文件名=file.getAbsolutePath();
textfield1.setText(文件名);
字符串arr=新字符串();
试一试{
扫描仪输入=新扫描仪(文件);
while(input.hasNext()){
textarea1.setText(input.nextLine());
//input.close();
}
}捕获(FileNotFoundException ex){
Logger.getLogger(GUI.class.getName()).log(Level.SEVERE,null,ex);
}
String content=textarea1.getText();
ArrayList myList=新的arraylistarays.asList(content.split(“AT”));
这不起作用,因为它只使用最后一行而不是整个文件,我尝试用“AT”而不是RE来拆分它,但这不起作用,因为AT被删除了。文件中的
“AT”
字符串不以
.1
结尾,我不希望该字符串出现在我的列表中。所以,我想我应该用RE


对不起,如果我的语法不是最好的,但是英语不是我的母语。我希望任何人都能帮助我。谢谢:)

您可能要找的正则表达式是:

AT[\d.]+1
请参阅。
请注意,反斜杠需要在
Java
的正则表达式中转义:

AT[\\d.]+1
要允许数字和字母,请将其更改为:

AT[\\w.]+1
对号入座

演示

const regex=/AT[a-zA-Z\d]+\.1\b/g;
const str=`测试文本在2006年1月5日星期三的500.1分,测试文本在66.1分的999.1分
AT434.43431.121212.212 AT50DDDS0.1 AT500_.1`;
const result=str.match(正则表达式);

控制台日志(结果)使用
字符串pat=“\\bAT\\S*\\.1\\b”
\S
匹配一个非空白字符)。您希望包装列表中的每一行都有一个列表,还是一个包含所有行的所有点击的大列表?我希望所有行的所有点击都有一个大列表,因此文件中的所有字符串都以“AT”开头,以“.1”结尾,字母或数字之间。这也可以选择一些不需要的数字。“AT”和“.1”之间也可以有字母。(我将在我的帖子中对此进行更改)。例如ATSN3.1。因此,字符串应该以AT开头,以“.1”结尾,中间只有几个字母。(那么我的可能仍然不是好的,但我会尝试在该网站上找到好的,谢谢!)@PavneetSingh:定义不需要的。
\\w
也将匹配
下划线:)