正则表达式的字符串比较

时间:2013-03-12 16:54:01

标签: regex

在Excel VBA论坛here上有人请求帮助以匹配以下字符串:

Examples:
ACBD,AC - Match
ACBD,CA - Match
ACBD,ADB - Match
AC,ABCD - Match
ABC, ABD - No Match

规则是字符串匹配条件是一个字符串中的所有字母都包含在另一个字符串中(即两个字符串中的任何一个包含另一个字符串中的所有字母)

所以我觉得正则表达式可能就是答案,但我是一个绝对的新手,所以你能帮忙吗?

是否可以将两种情况相互匹配?

感谢 菲利普

2 个答案:

答案 0 :(得分:1)

虽然正则表达式肯定会使检查更容易,但我不认为没有额外的编码是不可能的。您需要代码执行以下操作之一:

1)分别匹配每个角色然后看看是否所有匹配都是真的, 2)在所有可能的顺序排列中重新排列字符的顺序,并检查每个顺序以查看是否匹配

无论哪种方式,您都需要操纵“检查”字符串,以涵盖匹配的所有可能要求。

如果您曾要求“按此顺序中的任何一个字符”或“所有这些字符”,您可以在没有额外逻辑的情况下执行此操作,但因为您需要“任何这些字符,无论任何顺序“,你需要操纵输入。

答案 1 :(得分:0)

我在VBA中没有给你答案,但可以告诉你需要采取的步骤。

对于每个元素,创建一个变量,其中的字符按字母顺序排序 - 您需要在网上搜索排序函数来执行此操作,因为VBA中没有内置函数。

在两个变量中的每个字符之间插入。* - 这些是你的正则表达式。您可能希望将此步骤与sort函数合并。

然后你需要做的就是将你的数组中的元素与从第二个元素创建的正则表达式变量匹配,然后用第一个元素进行第二个。