根据字符串的不同模式拆分字符串[重复]

Posted

技术标签:

【中文标题】根据字符串的不同模式拆分字符串[重复]【英文标题】:Split string based on different patterns of a string [duplicate] 【发布时间】:2020-09-25 04:01:52 【问题描述】:

我想根据多个字符串模式在字符串中查找子字符串。

例如:"word1 word2 word3 and word4 word5 or word6 in word7 in word8" 根据andorin进行拆分。

输出应该是

word1 word2 word3
and word4 word5
or word6
in word7
in word8

【问题讨论】:

【参考方案1】:

与此一起使用:

String str = "word1 word2 word3 and word4 word5 or word6 in word7 in word8";

            String[] parts = str.split("and |in |or ");

            for(String part : parts)
                System.out.println(part);
        

【讨论】:

但是这不会打印它被分割的关键字。【参考方案2】:

您可以使用前瞻来做到这一点,?= 如下所示:

import java.util.Arrays;

public class Main 
    public static void main(String[] args) 
        String str = "word1 word2 word3 and word4 word5 or word6 in word7 in word8";
        String[] arr = Arrays.stream(str.split("(?=\\s+and)|(?=\\s+or)|(?=\\s+in)"))
                        .map(String::trim)
                        .toArray(String[]::new);
        // Display
        Arrays.stream(arr).forEach(System.out::println);
    

输出:

word1 word2 word3
and word4 word5
or word6
in word7
in word8

【讨论】:

以上是关于根据字符串的不同模式拆分字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery:拆分具有重复模式的字符串以分隔行

JavaScript拆分带有多个引号和不同ID的字符串[重复]

用于根据空格分隔符拆分文本的正则表达式 [重复]

通过正则表达式拆分字符串[重复]

加入列表和拆分字符串 [重复]

数字后的Java正则表达式拆分字符串[重复]