当前位置: 首页 > 知识库问答 >
问题:

在字符串的Json数组中,如何匹配存在的字符串的一部分?空手道DSL[复制]

孟意致
2023-03-14

---编辑问题以添加解决方案-----
--问题---
我有一个Json字符串数组,如下所示。

如何验证它是否包含今天的日期2021-10-11或单词PROCESSING-1作为其中的子字符串?顺便说一句,我正在用空手道DSL尝试它

[
  "TEST1019005-2021-10-19T18:19:41.271055Z-PROCESSING-2",
  "TEST1019005-2021-10-19T18:19:41.271055Z-PROCESSING-1",
  "TEST1019002-2021-10-19T14:50:16.810678Z-PROCESSING-2",
  "TEST1019002-2021-10-19T14:50:16.810678Z-PROCESSING-1",
  "TEST1019002-2021-10-19T14:50:16.810678Z-PROCESSING-0",
  "777777-2021-10-19T09:24:33.064845Z-PROCESSING-2",
  "777777-2021-10-19T08:23:10.213230Z-PROCESSING-1",
  "777777-2021-10-19T08:23:10.213230Z-PROCESSING-0",
  "TEST1018001-2021-10-18T16:31:32.643392Z-PROCESSING-0",
  "TEST1013001-2021-10-13T15:13:59.974540Z-PROCESSING-0",
  "777777-2021-10-13T14:17:45.727585Z-PROCESSING-2",
  "Test01-2021-10-11T20:20:05.968159Z-PROCESSING-1",
  "Test01-2021-10-11T20:20:05.968159Z-PROCESSING-0",
  "333333333-2021-10-11T20:11:26.474697Z-PROCESSING-0",
  "333333333-2021-10-08T21:43:28.251925Z-PROCESSING-0",
  "232623234-2021-10-08T21:27:04.363014Z-PROCESSING-0",
]

----解决方案——我可以通过以下reg-ex实现。

* match myArray contains "#regex (?i).*" + '2021-11-08' + ".*" 

以下是帮助某人的代码:

  • def myArray=
    “”“
    [
    “Cust1019005-2021-10-27T18:19:41.271055Z-PROCESSING-2”,
    “Cust1019005-2021-10-19T18:19:41.271055Z-PROCESSING-1”,
    “Cust1013002-2021-10-13T15:23:57.510469Z-PROCESSING-2”,
    “333333333-2021-10-08T21:43:28.251925Z-PROCESSING-0”
    ]
    “”

共有1个答案

权烨磊
2023-03-14

以下是部分解决方案:

* def today = 
"""
function() {
  var Formatter = Java.type("java.time.format.DateTimeFormatter");
  var LocalDate = Java.type("java.time.LocalDate");  
  var dtf = Formatter.ofPattern("yyyy-MM-dd");
  return dtf.format(LocalDate.now());
}
"""
* match each response contains today()

剩下的就看你了。请注意,还有一个regex匹配选项:https://github.com/karatelabs/karate#fuzzy-匹配

也可参考以下答案:https://stackoverflow.com/a/60945563/143475

 类似资料:
  • 我有类似这样的数据来自一个领域- {"AddressLine1":"Example Dr "," AddressLine2 ":"," City":"Paradise City "," State":"State Name "," PostalCode":"12345 "," Zip5":"67891 "," zip 4 ":" } {"地址线1":"Ex Ln","地址线2":"Adr 22",

  • 问题内容: 我对Java还是很陌生,并且遇到了一个特定的家庭作业问题,在该问题上,字符串得到了传递,然后我必须将其从此拆分成与所传递的Integer相等的部分。 例如:输入字符串“ HelloWorld”,必须将其除以2,然后将这些部分放入具有以下两个部分的数组中:array [hello,world]。 反正有使用FOR循环执行此操作吗? 到目前为止,我的代码将整个String输入每个数组元素。

  • 问题内容: 我有一个oracle表,该表具有名为system_access的列,该列具有以下数据: 基于上述示例数据,我不确定我的查询仅检索与“只读”和/或“只读”的确切单词匹配的记录 我不需要具有“只读(否)”,后接空格或方括号的记录,或“只读(请参阅mgr)”,其后或接续无空格和括号的记录。 因此,根据以上示例数据,我只会返回两行,即: 如前所述,只有与字符串“ Read Only”或“ re

  • 我想拆分到一个数组4使用 这是我的代码: 但是,结果标记是一个空数组:[],而不是我想要的4的数组。 我已经测试过稍微更改一下str: 这次的结果标记是<代码>[“”、“”、“”、“”、“”1“]。这接近我想要的,但我真的不想在进行拆分之前添加这个“1”。 问题基本上是字符串。如果split()只包含空元素,它将返回空数组。 你能帮我解决这个问题吗?

  • 我正在处理一个关于codingbat的问题,这个问题说:给定一个字符串和第二个“单词”字符串,我们会说这个单词匹配字符串,如果它出现在字符串的前面,除了它的第一个字符不需要完全匹配...在匹配时,返回字符串的前面,或以其他方式返回空字符串。所以,所以用字符串“河马”,“嗨”这个词返回“嗨”,“xip”返回“臀部”。单词长度至少为1。我不能解决它,但在网上找到了一个解决方案,代码如下所示。代码工作,

  • 问题内容: 欲分割为4的阵列,以利用 这是我的代码: 但是,结果标记是一个空数组:[],而不是 我想要的4数组。 我已经测试过更改一点: 这次的结果标记为。这与我想要的接近,但是我真的不想在拆分之前添加此“ 1”。 问题基本上是,如果它仅包含空元素,它将返回一个空数组。 您能帮助解决问题吗? 问题答案: 您需要使用带有limit参数的重载方法。 从文档(重点是我的): limit参数控制应用图案的