首页 > 解决方案 > reg 匹配以使用分隔符“/”搜索字符串 informatica

问题描述

我有一个包含以下示例数据的字符串列。

1) ABC/DEF/003 - 这是为了测试

2) XYZV/T&X/ABC/004 - 这是用于测试

3) ZXC/004/007 - 这是用于测试的

4)这是测试

使用 regextract/regmatch 我只需要搜索/提取以下数据

1) ABC/DEF/003

2) XYZV/T&X/ABC/004

3) ZXC/004/007

4) 它应该返回 null

我已经使用了模式搜索, (.*)([^A-Z0-9\/\._])但它不满足最后一个条件(4)数据。

你能帮我解决这个问题吗?

标签: regexunicoderegex-groupinformaticainformation-extraction

解决方案


该模式(.*)([^A-Z0-9\/\._])将首先匹配除换行符之外的所有字符,.*并捕获组 1 中的字符。

第二部分使用否定字符类匹配任何不在字符类中的字符 1 次,并将其捕获在第 2 组中。

如果您不想匹配最后一个条件,您可以使正则表达式更具体。

您可以重复字符类[A-Z0-9._&]+ ,然后重复一个组(?:/...)+ 一次或多次,其中添加正斜杠。缺少一个&符号,您也可以添加它。

然后匹配一个空格,-一个空格。之后,您可以使用除换行符之外的任何字符匹配 0+ 次.*

[A-Z0-9._&]+(?:/[A-Z0-9._&]+)+ - .*

正则表达式演示


推荐阅读