【问题标题】:RegEx to get 2nd and 3rd variables between pipes正则表达式获取管道之间的第二个和第三个变量
【发布时间】:2012-10-25 17:05:11
【问题描述】:

enter image description here示例文本:

工程 | AB7407 | 007412665 |杰基布朗 |绘图为 建设

我需要 2 个正则表达式。在第一个管道 AB7407 之后,可以给我第二个值 第二个 Redex 可以在第二个管道 007412665 之后给我第三个值

我尝试了以下操作,但它返回了示例文本:

^(?<field1>[^|]+),(?<field2>[^|]+),(?<field3>[^|]+),(?<field4>[^|]+),(?<field5>[^|]+)$

结果:

工程 | AB7407 | 007412665 |杰基布朗 |绘图为 建设

谁能建议我的正则表达式发生了什么。

【问题讨论】:

  • 或者你可以使用capturing groups,或者用管道分割字符串,得到第二个和第四个值。

标签: .net regex


【解决方案1】:

我会这样做:

 string original = "Engineering | AB7407 | 007412665 | Jackie Browne | Drawing for Construction";
 string[] split = original.Split('|');
 string firstcode = split[1];
 string secondcode = split[2];

如果您想删除所有前导/尾随空格:

string secondcode = split[2].Trim();

【讨论】:

    【解决方案2】:
    Dim x = "Engineering | AB7407 | 007412665 | Jackie Browne | Drawing for Construction"
    Dim parts = x.Split(" | ")
    

    parts(1) 现在包含第二个字符串块,parts(2) 包含第三个。这是 VB,但 c# 或您使用的任何方法都类似。

    修复你的正则表达式:

    ^(?<field1>[^|]+) \| (?<field2>[^|]+) \| (?<field3>[^|]+) \| (?<field4>[^|]+) \| (?<field5>[^|]+)$
    

    如果你必须有 2 个正则表达式,

    (?<=^[^|]+ \| )[^|]+
    

    匹配第二个块,并且

    (?<=^(?:[^|]+ \| ){2})[^|]+
    

    匹配第三个。

    【讨论】:

    • 很好的代码,但我在 SharePoint 工作流中没有这样的代码。
    • @qarminjamil 我已更新我的答案以更正您的正则表达式。你可以测试这个here
    • 感谢您的回复。我快到了。我需要想办法(在 SharePoint 2010 中,工作流,如何获取字段 2 和字段 3)。
    • @qarminjamil 我从来没有使用过工作流,所以我不确定,但如果你能发布你用来匹配正则表达式的代码,我相信我能弄明白。
    • @qarminjamil 我已经更新了答案,给你 2 个单独的正则表达式。您不需要将捕获组与这些一起使用。
    【解决方案3】:

    正则表达式是错误的处理方式。命令行上的cut -f 2,3 -d '|' 将提供您要查找的内容。

    任何编程语言都应该有一个字符串拆分函数,它会根据你的管道分隔符将你的字符串转换成一个字符串数组。使用它而不是正则表达式。

    【讨论】:

      【解决方案4】:

      使用组

      ^(?<field1>.*?)\|(?<field2>.*?)\|(?<field3>.*?)\|(?<field4>.*?)\|(?<field5>.*?)$
      

      名为 field2field3 的组包含您的数据

      【讨论】:

        猜你喜欢
        • 2022-11-13
        • 1970-01-01
        • 2015-11-23
        • 2011-03-29
        • 2021-02-23
        • 1970-01-01
        • 1970-01-01
        • 2015-12-09
        • 1970-01-01
        相关资源
        最近更新 更多