c#regex匹配属性和功能

时间:2014-09-10 09:47:02

标签: c# regex parsing

我需要匹配两种类型的值: 1. Object.Property 2. Object.FuncName("Argument")

现在我尝试使用这样的东西: \w+.\w+(\(.*\))? \w+.\w+ - 确保我得到像Object.PropertyName这样的表达式 (\(.*\))? - 我在里面有任何带括号的括号。因为它们用括号括起来,后跟问号,这部分是可选的。
因此可能是Object.PropNameObject.FuncName('SomeArgHere')

当我使用这个正则表达式反对这样的事情时:
Object.FuncName("SomeArg") = 'SomeValue' AND Object.SomeProp = 'AnotherValue'regexhero我也'SomeValue' AND Object匹配。 相反,它应匹配Object.FuncName("SomeArg")Object.SomeProp

根据我的回答,我尝试使用\w+\.\w+(\(.*?\))?\s+MayContain(\[.+,?\ ?\])来匹配以下内容:Obj.Prop MayContain["value"] AND Obj.Func("Test") MayContain["Other"]。它与整个字符串相匹配,尽管是AND

1 个答案:

答案 0 :(得分:1)

您需要转义点以使其与文字点匹配,否则它将匹配除换行符之外的任何字符。

\b\w+\.\w+(\(.*?\))?

DEMO
IDEONE

<强>更新

以下正则表达式将匹配两种类型的字符串,

\w+\.\w+(\(.*?\))?(?:\s+MayContain(\[[^]]*\]))?

DEMO