我有一个字符串,其中包含一些自定义公式,例如FVAL("A")+FVAL(B)
。我想找出FVAL()
里面没有引号的所有字符串。
所以基本上我想提取B
,因为它没有引号。
答案 0 :(得分:1)
使用
FVAL\(([^")]*)\)
这匹配FVAL(
,后跟除引号或右括号之外的任意数量的字符,后跟)
。
另一种可能性(匹配位于$0
而不是$1
:
(?<=FVAL\()[^")]*(?=\))
这匹配由FVAL(
和)
包围的非引号/非括号字符串。
在VB.net中:
Dim RegexObj As New Regex("FVAL\(([^"")]*)\)", RegexOptions.IgnoreCase)
Dim MatchResult As Match = RegexObj.Match(SubjectString)
While MatchResult.Success
ResultList.Add(MatchResult.Groups(1).Value)
MatchResult = MatchResult.NextMatch()
End While
或
Dim RegexObj As New Regex("(?<=FVAL\()[^"")]*(?=\))", RegexOptions.IgnoreCase)
Dim MatchResult As Match = RegexObj.Match(SubjectString)
While MatchResult.Success
ResultList.Add(MatchResult.Value)
MatchResult = MatchResult.NextMatch()
End While
答案 1 :(得分:0)
你需要一个像
这样的表达式"FVAL\\(([^\"]+)\\)"
包括捕获组的一组括号。