如何拆分()关于多个分隔符的字符串? [复制]

Posted

技术标签:

【中文标题】如何拆分()关于多个分隔符的字符串? [复制]【英文标题】:How to split() a string with respect to multiple delimiters? [duplicate] 【发布时间】:2019-12-24 12:25:03 【问题描述】:

尝试从 Egypt Today Last Update Time: 18-Aug-2019 14:00 (GMT) 中提取文本 18-Aug-2019 14:00 和我的步骤是在“:”作为第一步进行拆分,然后进行拆分“(”部分(基本上是 2 个拆分),并且 2 个拆分不起作用......我们可以只从一个步骤开始吗?谢谢

代码试验:

lastupdated1=lastupdated.split("Last Update Time: ")[1]
lastupdated2=lastupdated1.split(" (GMT")[0]

错误是:

2019-08-19 14:54:53.692 ERROR c.k.katalon.core.main.TestCaseExecutor   - ❌ Test Cases/REGIONAL MARKET NEWS/Verify_whether_news_getting_updated FAILED.
    Reason:
    java.util.regex.PatternSyntaxException: Unclosed group near index 5
     (GMT
        at java_lang_String$split$0.call(Unknown Source)
        at Verify_whether_news_getting_updated.run(Verify_whether_news_getting_updated:41)

【问题讨论】:

错误信息很清楚。在您的正则表达式 (GMT 中有一个未封闭的组。即您已经开始了一些括号但没有完成它们。我想你想匹配一个文字左括号,所以你需要转义它。在java中,需要对转义进行转义,所以请改用\\(GMT ***.com/users/1898563/michael 非常感谢,现在工作正常。 没问题 关键是.split 需要一个正则表达式。 【参考方案1】:

您可以使用 Egypt Today Last Update Time: 18-Aug-2019 14:00 (GMT) 轻松提取 18-Aug-2019 14:00 文本split() 只通过一次regex,您可以使用以下解决方案:

代码块:

String myNewString = "Egypt Today Last Update Time: 18-Aug-2019 14:00 (GMT)";
String[] tokens = myNewString.split(": |\\(");
System.out.println(tokens[1]);

控制台输出:

18-Aug-2019 14:00

【讨论】:

以上是关于如何拆分()关于多个分隔符的字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用分隔符数组在 Java 中使用多个分隔符拆分字符串? [复制]

如何使用 STL 拆分字符串? [复制]

如何使用字符串分隔符拆分字符串? [复制]

如何将字符串拆分为分隔符也是标记的数组? [复制]

如何拆分字符串但在java中保留分隔符? [复制]

如何在 LookML 中拆分具有多个分隔符的字符串?