我正在使用VBA过滤MS Access数据库中的记录 我首先需要清理特定列中的数据
此列中的示例项目为XXXZZZSTYS1234NCYORGxxxASD
我想要做的是,如果字符串包含STY
,则删除后续字符,直到您到达COYORGxxx
或NCYORGxxx
或CNYORGxxx
,然后删除后面的任何字符ORGxxx
如果存在
因此,在上面的示例中,它将被清除为XXXZZZSTYNCYORGxxx
它不一定是VBA,我用notepad ++来测试它
答案 0 :(得分:1)
您可以尝试以下正则表达式:
(.*?STY).*?((COY|NCY|CNY)ORGxxx).*
并将其替换为:
$1$2
其中:
答案 1 :(得分:1)
你去。
(.*STY).*((CO|NC|CN)YORGxxx).*
(。* STY)将捕获每个字符串直至STY
。*会跳过字符直到下一次抓住
((CO | NC | CN)YORGxxx)将捕获以CO,NC或CN开头的任何字符串,然后是YORGxxx
和最后一个。*就在这里以确保匹配(在此特定示例中不需要)
然后你只需要用$ 1 $ 2替换,$ n代表正则表达式的第n个捕获。