我想要提取字符串

时间:2012-03-22 10:32:49

标签: java

我有一个像

这样的字符串
s1 = "Plug 1:L2SAEJ1772 Plug 2:L2SAEJ1772 Plug 3:L2SAEJ1772";

我想打印它像

Plug 1:L2SAEJ1771

Plug 2:L2SAEJ1772

Plug 3:L2SAEJ1773

有可能吗?如果是的话,请帮助我。

谢谢

5 个答案:

答案 0 :(得分:1)

您可以使用前瞻性的正则表达式(这样您就不会“丢失”单词“Plug”):

String[] splitted = s1.split(" (?=Plug)");
for (String s : splitted) {
    System.out.println(s);
}

答案 1 :(得分:1)

String s1 = "Plug 1:L2SAEJ1772 Plug 2:L2SAEJ1772 Plug 3:L2SAEJ1772";
s1 = s1.replaceAll( " P", "\nP" );
System.out.println( s1 );

答案 2 :(得分:0)

当你有一个“P”(一个空格和一个P)时你切断了字符串 检查需要正则表达式的s1.split() 或者你可以通过for(int i = 0; i< s1.length(); i ++)查看字符串并检查是否满足条件。

答案 3 :(得分:0)

您的示例需要更改。由于输入字符串不以717273

结尾
    String s1="Plug 1:L2SAEJ1771 Plug 2:L2SAEJ1772 Plug 3:L2SAEJ1773";
    Pattern p = Pattern.compile("Plug\\s\\d:\\w*\\b");
    Matcher m = p.matcher(s1);
    while(m.find())
        System.out.println(m.group());

返回

Plug 1:L2SAEJ1771
Plug 2:L2SAEJ1772
Plug 3:L2SAEJ1773

答案 4 :(得分:0)

简单的正则表达式执行技巧:\w+

您只需从每个提取的行中删除: