Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串的正则表达式分离_Java_Regex - Fatal编程技术网

Java 字符串的正则表达式分离

Java 字符串的正则表达式分离,java,regex,Java,Regex,我正在尝试将字符串分成不同的组,但我在这项任务中没有经验。 所以我需要一个正则表达式,它在Java中将原始字符串分成两组 我的文本示例如下: 跟骨k a l k a n i 我要t: 第1组:跟骨 第2组:KALANKANI(或,如果可能,卡尔卡尼) 你知道如何创建这种模式吗 谢谢大家! String x="calcani k a l k a n i"; String []x1=x.split(" ",2); System.out.println(x1[0]);

我正在尝试将字符串分成不同的组,但我在这项任务中没有经验。 所以我需要一个正则表达式,它在Java中将原始字符串分成两组

我的文本示例如下:

跟骨k a l k a n i

我要t:

  • 第1组:跟骨

  • 第2组:KALANKANI(或,如果可能,卡尔卡尼)

你知道如何创建这种模式吗

谢谢大家!

  String x="calcani k a l k a n i";
    String []x1=x.split(" ",2);
    System.out.println(x1[0]);
    System.out.println(x1[1]);
输出

calcani
k a l k a n i
result[0] ->calcani
result[1] ->kalkani
如果您希望输出如下所示

calcani
kalkani
然后使用

String x="calcani k a l k a n i";
        String []x1=x.split(" ",2);
        System.out.println(x1[0]);
        System.out.println(x1[1].toString().replace(" ", ""));

为什么是正则表达式。只要实现这个逻辑:

  • 搜索第一个空格并在第一个空格的左边取子字符串
  • 第一个空格右边的字符串的其余部分是第二个匹配项,此时如果要删除所有可以使用的空格:

    String repl = str.replace(" ", "");
    
  • 使用控制通过拆分字符串生成的子字符串的最大数量:

    String[] temp = "calcani k a l k a n i".split(" ", 2);
    

    您将获得两个字符串,如下所示:

     String[] results = "calcani k a l k a n i".split(" ", 2);
    //remove spaces from second group
     String secondGroup=result[1];
     secondGroup=secondGroup.replaceAll(" ","");
     System.out.println("result[0] ->"+result[0]);
     System.out.println("result[1] ->"+result[1]);
    
    输出

    calcani
    k a l k a n i
    
    result[0] ->calcani
    result[1] ->kalkani
    
    试试这个

        String[] results = "calcani k a l k a n i".split(" ", 2);
        System.out.println(results[0]);
        System.out.println(results[1].replace(" ", ""));
    

    您的意思是说您希望根据字符串中出现的空格拆分字符串不完全是,对于第一部分,我需要在空格之前提取字符串,并与项目的不同部分进行比较,然后使用第二组。如果这是要求,那么下面的许多答案就足够了。我试图实现一个正则表达式,因为我有一个条目列表,我必须比较第一组,然后报告第二组。分组后,我的想法是使用replace删除空格。@user2893821查看我的答案,我已经提供了ways@user2893821:除非必要,否则不应使用正则表达式。在这种情况下,您只需执行
    intspacepost=string.indexOf(“”)
    获取第一个空格的位置,然后是简单的
    字符串。substring
    方法获取两个子字符串。