2011-02-24 51 views
0

我有这个字符串:{test1}-{test2}/{x+y}C#:比较正则表达式的字符串组

我要检查是否{test1}{test}匹配该字符串。

它将匹配,如果我只是可以不理会之间的字符的}...{

你会如何写正则表达式?

UPDATE:

我要检查是否{test1}{test2}{x+y}匹配字符串:

{test1}-{test2}/{x+y}

+0

只是为了澄清,你想看看这个字符串是否包含{test1},后面是一些东西,然后是{test}?输入字符串包含“{test2}”作为那里的第二个字符串,它不会匹配吗? –

+0

ups对不起Lasse我改正了:{test1} {test2} {x + y}是必须匹配的字符串! – msfanboy

+0

然后等待更正。请编辑您的问题,以便正确描绘您想要完成的内容。 –

回答

1

我假设您的评论表示您要使用以下模式{test1}{test2}{x+y},你希望它匹配第一个字符串,在支撑组之间可以提供任何东西的附加规则,所以减号和除法不应阻止匹配。

来匹配输入,它可以包含在支撑组之间的任意字符,使用这种类型的正则表达式:

\{test1\}.*\{test2\}.*\{x\+y\} 

这将匹配:

{test1}{test2}{x+y} 
{test1}-{test2}/{x+y} 

{test1}+{test3}*{test2}/{test4}-{x-y}+{x+y} 
     ---------  ---------------   <-- the parts that match .* 
+0

你不应该逃避牙套吗? – Dyppl

+0

良好的捕获,但这里没有必要,但它是正确的。括号只在包含数字时指定重复,因此'x {t}'并不意味着“x”t“次”,而是“x {2}”。将编辑。 –

+0

我的大括号中包含测试“1”,测试“2”也是一个数字,但不是一个独立的数字。所以我想测试2我不需要大括号正确吗? – msfanboy