SAP EBS MT940格式搜索字符串特殊字符与字母识别咨询
问题1:SAP EBS搜索字符串如何正确识别特殊字符
SAP EBS搜索语法仅对列表内的预留特殊字符做逻辑解析:|、(、)、+、*、?、#、^、$、\,你需要将这些字符作为普通文本匹配时,仅需在字符前加转义符\即可。
不在上述列表内的特殊字符(比如/、!、>等)不需要转义,直接写原字符即可匹配。
示例:要匹配?/!>这个字符组合,搜索字符串写\?/\!>即可。
问题2:如何在搜索字符串中定义规则识别英文字母
SAP EBS搜索语法没有预设的字母通配符,按场景使用两种写法即可:
- 匹配固定字母/固定字母组合:直接写对应字母即可,比如要匹配前缀为
DE的6位数字,搜索字符串写DE###### - 匹配任意单个英文字母:用或逻辑穷举即可,匹配大写单个字母的规则为
(A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z),需要匹配小写/大小写同时兼容的场景,把对应字母加入或逻辑分组即可。
针对你当前重复匹配的问题修复方案
你当前使用的\C*######\C*不符合SAP官方语法规则,\C不是合法的转义序列,会导致规则解析异常,最终变成*######*的贪婪匹配逻辑,才会返回所有连续6位数字的重复结果。
你测试报文里的目标串651234的特征是前后都包裹?,直接把搜索规则改成\?######\?即可精准匹配到目标串,提取中间6位数字即可,不会误匹配后面的652004。
内容的提问来源于stack exchange,提问作者gc2525
相关产品推荐
相关产品推荐

