【问题标题】:Extract string depending on uppercase or lowercase根据大写或小写提取字符串
【发布时间】:2014-05-14 09:48:09
【问题描述】:

给定,

    $string1 = "Reference: AbcDef   PO: 12345abC   line: 01";

    $string1 = "Reference: AbcDef   po: 12345abC   line: 01";

这里的想法是使用 XPath 和/或 RegEx 提取“PO:”或“po:”之后和“line”之前的值。

通常,我会这样做,substring-after(upper-case(string1), "PO:")。这将满足 PO: 和 po:;但这也会影响全部大写的结果,“12345ABC”。

这里的问题,如何在不影响结果的情况下提取值。

在perl中,有"?i"的意思,不管大写还是小写。

任何帮助将不胜感激。

【问题讨论】:

    标签: regex xpath substring uppercase


    【解决方案1】:

    如果你可以使用正则表达式,我想你可以使用这样的东西

    substring-after(string1, (PO:|po:))
    

    正则表达式与选项之一匹配的位置。如果在你想要匹配的 po: 或 PO: 之前有另一个子字符串也匹配,请注意这一点。

    【讨论】:

      【解决方案2】:

      您可以使用fn:replace 和正则表达式来提取POpo 字段的值并丢弃字符串的其余部分:

      replace($string1, ".*(?:PO:|po:)\s(.*)line.*", "$1")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-07
        • 2016-01-25
        • 1970-01-01
        • 2022-06-28
        • 2020-09-13
        相关资源
        最近更新 更多