gpt4 book ai didi

java - 该正则表达式是否始终按照下面所述的要求工作?

转载 作者:行者123 更新时间:2023-12-01 04:40:58 25 4
gpt4 key购买 nike

这个正则表达式是否正确地将一个句子分成 3 个标记:

  1. 括号内小写字母之前的字符
  2. 括号内的小写字母(包括括号)
  3. 小写括号字母后面的字符

System.out.println("这是一个测试".matches("^(.*)?\\([a-z]*\\)(.*)?$"));

该字符串可能有也可能没有括号小写字母,并且它可能出现在句子中的任何位置。如果您发现我未考虑过的用例中存在缺陷,您可以在正则表达式中提供更正吗?

对于例如如上所述。

Group1 captures This is 
Group2 captures (a)
Group3 captures test

编辑::如何更改正则表达式以实现以下目标?

如果字符串有(foo)(bar)(baz),我如何捕获group1=空group2=(foo)和group3=empty。并找到上面的模式三次,因为有 3 个括号。

最佳答案

除了检查正则表达式之外,每当我编写正则表达式时,我都会编写一系列单元测试来覆盖每种情况。我建议你也这样做。使用正则表达式创建四个测试(至少)并针对字符串进行测试:

  • (a) 这是测试
  • 这是(a)测试
  • 这是测试 (a)
  • 这是一个测试

这应该涵盖您所描述的每种情况。这比尝试手动分析每种情况的正则表达式更容易、更快。

关于java - 该正则表达式是否始终按照下面所述的要求工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16548835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com