Regex:匹配VBA Excel函数中的所有内容,但不匹配特定的多字母字符串(正则表达式、激励、任何内容,但不是Visual Basic) [英] regex: match everything, but not a certain multiletter string within VBA Excel function (regular expression, inspite of, anything but, visual basic)

查看:0
本文介绍了Regex:匹配VBA Excel函数中的所有内容,但不匹配特定的多字母字符串(正则表达式、激励、任何内容,但不是Visual Basic)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

朋友们,这是另一个关于regex:匹配所有内容,但不是...,但到目前为止,似乎不符合我的简单问题。

我需要对Excel函数进行编程,以将字符串与其前面的枚举数分开(类似于此处所做的操作:VBA regex: extract multiple strings between strings within Excel cell with custom function)

我的第一个简单字符串是:";1 Rome; 2 London; 3 Wembley Stadium";

我的第二个字符串看起来像:";1.1 Winner; 2.1 Looser; 3.3 Penalties (always loose, dam)";

我只需要提取名字,而不需要提取级别(例如,";Rome; London; Wembley StadiumWinner; Looser; Penalties (always loose, dam)";)。

使用正则表达式测试器(https://extendsclass.com/regex-tester.html),我可以通过以下方式简单地匹配相反的情况:

([0-9]+s*)它给了我:

1 罗马,2 伦敦,3 温布利体育场

但如何扭转这种局面呢?我尝试了如下内容:

[^0-9 |;]+[^0-9 |;],但也不包括我要保留的空格(例如,在逗号之后以及在温布利和体育场之间,1Rome,2London,3WembleyStadium&))。我想需要以某种方式将<2-13]>";确定为一个连续的字符串。我尝试了各种方括号、引号s*,但没有任何JET。

注意:我正在Visual Basic环境中工作,不允许使用lookbehinds!
注意:我的解决方案需要尽可能跨Excel版本兼容!

推荐答案

我尝试将数值和句点作为一个连续字符串&([^d|.])求反。这将在某些地方保留两个空间。

分组讲解regexr

要删除这些双空格,请尝试使用([^d|.])(?<!; ),我只是在后面添加了一个负面的外观,可能并不是所有的正则表达式解释器都支持它。

这篇关于Regex:匹配VBA Excel函数中的所有内容,但不匹配特定的多字母字符串(正则表达式、激励、任何内容,但不是Visual Basic)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆