鉴于,
$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"
含义。
非常感谢任何帮助。
答案 0 :(得分:0)
如果你可以使用正则表达式,我想你可以使用这样的东西
substring-after(string1, (PO:|po:))
其中正则表达式与其中一个选项匹配。如果在po:或PO:你想要匹配的内容之外,还有另外一个也匹配的子字符串。
答案 1 :(得分:0)
您可以使用fn:replace
和正则表达式来提取PO
或po
字段的值,并丢弃字符串的其余部分:
replace($string1, ".*(?:PO:|po:)\s(.*)line.*", "$1")