如何获取括号内容而不是括号本身

时间:2013-12-20 18:53:01

标签: regex vba

我有这种文字1323-DI-004 (2013-07-16).pdf,我希望将日期放在括号中。我尝试使用正则表达式(\(.*)\)。它给出了(2013-07-16)。我希望得到相同的结果,但没有括号。

这是针对VBA代码的。

是否有可能以及如何做到这一点?

1 个答案:

答案 0 :(得分:1)

编辑:您正在使用VBA,所以

Dim myMatches As MatchCollection
Set myRegExp = New RegExp
myRegExp.Pattern = "\((.*)\)"
Set myMatches = myRegExp.Execute(subjectString)
MsgBox(myMatches(1).Value) 'I think this be your reference? You may need to iterate myMatches to get the right one

假设这是一个完全符合PCRE的匹配平台(PHP,PERL等 - 不是 javascript),请使用lookarounds来实现此目的,匹配() on任何一方都没有将它们包括在捕获中:

(?<=\()(.*)(?=\))

查看实际操作:http://regex101.com/r/oI3gD6

如果您使用的是javascript,这将无效,但您可以使用\((.*)\)并检索第一个捕获组,这将是()内的内容。