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

带有-、::、(and)的Regex

梅耘豪
2023-03-14

字符串[1]=和

String[2]=(age-is-20::或::first_name-contains-test)

我试着写了这么多的regex表达式,但没有一个像预期的那样工作。

Pattern Pattern=Pattern.compile(“(\\)::)?(::\\()?”);

我尝试使用)::或::(拆分它。

我知道regex看起来太愚蠢了,但作为一个初学者,这是我能写的最好的。

共有1个答案

孙岳
2023-03-14

您可以使用正的lookahead和lookbehind来匹配第一个和最后一个括号。

String str = "(age-is-25::OR::last_name-is-qa6)::AND::(age-is-20::OR::first_name-contains-test)";

for (String s : str.split("(?<=\\))::|::(?=\\()"))
    System.out.println(s);

产出:

(age-is-25::OR::last_name-is-qa6)
AND
(age-is-20::OR::first_name-contains-test)

不过,请注意:您似乎在解析某种递归语言。正则表达式不擅长这样做。如果您正在进行高级解析,我建议您看看其他解析方法。

 类似资料:
  • 问题内容: 我尝试学习Elasticsearch将其添加到我的Rails应用程序中。我想对2个字段(就像它们只是一个字段)执行一次multi_match查询,并且还要对另一个必须等​​于1的字段(状态)进行过滤。 错误是: 请求中有什么问题?如何一起执行multi_match和BOOL? 问题答案: 使用过滤查询: 与Elasticsearch 5相同的查询:

  • 现在我的问题是,如何在自定义的而不是自定义的中重写方法?我没有在这里公布我的代码,因为它与链接的代码本质上是相同的,只是我需要为子创建一个自定义的来代替,这样它就可以按照“pptang”的答案所述进行正确的度量。 否则,有没有比在第二个RecyclerView中使用1个RecyclerView更好的方法?只能有1个RecyclerView使用上述列表和每个中唯一项的网格填充活动/片段吗?

  • 问题内容: 我正在使用,要求提供具有不同字段的搜索功能。搜索之前输入的字段是optional.I有5场说。 在这里我只需要查询用户给定的值,其他字段应该被忽略。 因此,这里我们考虑输入的值和进行查询。在这种情况下,Spring数据是具有限制中提到的这篇文章(不可扩展,所有可能出现的问题,应书面)我使用的,但仍然存在问题的领域应该被忽视,需要开发的几乎所有可能出现的问题。在这。如果搜索字段是? 用可

  • 问题内容: 我正在使用,要求提供具有不同字段的搜索功能。搜索之前输入的字段是有5场说。 在这里我只需要查询用户给定的值,其他字段应该被忽略。 因此,这里我们考虑输入的值和进行查询。在这种情况下,Spring数据是具有限制中提到的这篇文章(不可扩展,所有可能出现的问题,应书面)我使用的,但仍然存在问题的null领域应该被忽视,需要开发的几乎所有可能出现的问题。在这。如果搜索字段是? 用可选字段实现搜

  • 我使用的是,需要提供不同字段的搜索特性。在搜索前输入字段是可选的。我有5个字段,即、、、和。 这里我只需要按用户查询给定的值,其他字段应该忽略。ex, 所以这里我们要考虑输入和查询的值。在这种情况下,Spring data有本文中提到的限制(不可伸缩,所有可能的查询都应该编写)我使用,但问题仍然存在,因为字段应该被忽略,几乎所有可能的查询都需要开发。在这个。如果搜索字段为怎么办?? 用可选字段实现

  • 问题内容: 两者之间到底有什么区别 和 第一个只是加快字段初始化速度的捷径吗?有性能方面的考虑吗? 问题答案: 第二种形式总是创建一个空的地图。 第一种形式是地图文字的特殊情况。地图文字允许创建 非空 地图: 现在,您的(通用)示例: 是没有初始值(键/值对)的地图文字。它完全等同于: 此外,这是为地图指定初始容量(大于初始分配的元素数量)的唯一方法。例: 将创建一个地图,该地图具有足够的空间来容