【问题标题】:reg match to search a string informatica with delimiter '/'reg 匹配以使用分隔符“/”搜索字符串 informatica
【发布时间】:2019-06-26 09:24:17
【问题描述】:
我有一个包含以下示例数据的字符串列。
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)的数据。
你能帮我解决这个问题吗?
【问题讨论】:
标签:
regex
unicode
regex-group
informatica
information-extraction
【解决方案1】:
(.*)([^A-Z0-9\/\._]) 模式将首先匹配除 .* 引起的换行符以外的所有字符,并在第 1 组中捕获该字符。
第二部分使用 negated character class 匹配任何不在字符类中的字符 1 次,并将其捕获到第 2 组中。
如果您不想匹配最后一个条件,您可以使正则表达式更具体。
您可以重复字符类[A-Z0-9._&]+,然后重复一组(?:/...)+ 一次或多次,其中添加正斜杠。缺少一个&符号,您也可以添加它。
然后匹配一个空格,- 和一个空格。之后,您可以使用 .* 匹配除换行符以外的任何字符 0+ 次
[A-Z0-9._&]+(?:/[A-Z0-9._&]+)+ - .*
Regex demo