【问题标题】: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
  • stackoverflow.com/users/1898563/michael 非常感谢,现在工作正常。
  • 没问题
  • 关键是.split 需要一个正则表达式。

标签: java regex string selenium katalon-studio


【解决方案1】:

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

  • 代码块:

    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
    

【讨论】:

    猜你喜欢
    • 2017-08-21
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2011-02-01
    相关资源
    最近更新 更多