【问题标题】:Match quotes delimited strings in previous match在上一个匹配项中匹配引号分隔的字符串
【发布时间】:2016-10-01 02:15:56
【问题描述】:

我可以对这里的方法提供一些指导:

我在 RegEX 工作流操作中使用 .NET 正则表达式语法。反正我可以用

(\[.*\])([A-z]*)

匹配所有内容,包括下面的 []

Collection(Edm.String)"},"results":["Cheese","Biscuits","Grapes"]}

现在,我需要匹配所有用引号分隔的晚餐项目,但不包括引号。

我可以在单个 Regex 语句中执行此操作,还是需要分阶段执行此操作。最终,我想使用我的 Action 中可用的提取或拆分函数来填充晚餐项目的集合。

【问题讨论】:

  • 看起来像 JSON - 你为什么使用正则表达式?
  • 您需要匹配所有内容获取晚餐项目列表,还是只需要获取晚餐项目列表而您并不需要全部完全匹配?
  • 您可以通过try like this 使用\G anchor 并获取第一个捕获组的$1 匹配项。

标签: .net regex


【解决方案1】:

由于您很可能使用 Nintex 正则表达式工作流程,因此您只需要匹配项。

您可以利用 .NET 正则表达式引擎支持的无限宽度lookbehind:

(?<=\bCollection\(Edm\.String\)"},"results":\["(?:[^"]*",")*)[^"]+

regex demo

(?&lt;=\bCollection\(Edm\.String\)"},"results":\["(?:[^"]*",")*) 要求 1 个或多个非 " 字符 ([^"]+) 前面有一个完整的单词 Collection(Edm.String)"},"results":[",然后是零个或多个 " 序列 + 0+ 个除 @ 以外的字符987654330@,然后是","

对于 Nintext Extract 工作流程,使用 dictResults 作为输出值。

【讨论】:

  • 非常感谢。您是正确的 office 365 Nintex w/f,但我正在努力使用这种正则表达式语法。我也会用regex101.com试试看是否能更好地理解它
  • Regex101.com 不支持 .NET 正则表达式语法。安装使用Expresso
  • 顺便说一句,对于我输出到 collResults 的最后一个正则表达式提取,我刚刚选择了集合中的第一个项目。这次将尝试字典变量。
  • 嗯,这部分实际上取决于你 :) 我当时并不想听起来很明确。
  • 再次感谢。我无法面对那个正则表达式的另一天。我会发疯的。已加载 Expresso @westerdaled
猜你喜欢
  • 1970-01-01
  • 2013-05-20
  • 1970-01-01
  • 2014-05-02
  • 2021-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多