Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex VBA正则表达式对单个字符的限制_Regex_Vba - Fatal编程技术网

Regex VBA正则表达式对单个字符的限制

Regex VBA正则表达式对单个字符的限制,regex,vba,Regex,Vba,我有一个字符串,当有一个插入的括号而不是两个时,我想在VBA正则表达式上匹配它 例如,“沙漠(蛋糕,派)”应该匹配,但“沙漠(南瓜,糖果(蛋糕,派))”不应该匹配 但是,此模式匹配上述两个搜索字符串: regex.Pattern = LCase("desert") & ".*\(.*" & searchString 有没有办法告诉它我只有一场比赛,如果有两场,那就没用了?我认为问题在于。*正在吞食第二个 如果我正确理解了您的示例,那么您可以使用一个简单的方法来实现这一点

我有一个字符串,当有一个插入的括号而不是两个时,我想在VBA正则表达式上匹配它

例如,“沙漠(蛋糕,派)”应该匹配,但“沙漠(南瓜,糖果(蛋糕,派))”不应该匹配

但是,此模式匹配上述两个搜索字符串:

   regex.Pattern = LCase("desert") & ".*\(.*" & searchString

有没有办法告诉它我只有一场比赛,如果有两场,那就没用了?我认为问题在于。*正在吞食第二个

如果我正确理解了您的示例,那么您可以使用一个简单的方法来实现这一点

[^()]*\([^()]*\)
=>


…将查找开头部分,后跟任意数量的非开头部分字符,后跟结尾部分字符。因为模式在中间寻找非PAREN字符,所以您的要求应该得到满足。

< P>是的,您只需要告诉它到<强> > < <强> >第一个匹配后的括号:

regex.Pattern = LCase("desert") & ".*\([^\(]*" & searchString
regex.Pattern = LCase("desert") & ".*\([^\(]*" & searchString