2010-11-05 54 views
0

我想对所有引用的字符串进行正则表达式测试。没关系。匹配所有引用的字符串,但在字符串之前过滤引号字符串

\"(?<InQuote>[^\"]*)\" 

但我还需要在引用前过滤一些测试。例如。 “测试”。因此,只有那些在报价前带有“test”字符串的行被列出。

aTestButton.Text("some string in qoute"); //get this 
aButton.Text("some string in qoute"); //don't get this 

回答

1

在你的正则表达式的前面加上test.*,即

test.*\"(?<InQuote>[^\"]*)\" 

如果要匹配你在你的问题中提供的例子,一定要指定在“不区分大小写”修改您的正则表达式搜索。这是如何完成的取决于你使用的编程语言。

+0

好的。但是,如果报价包含“测试”字符串呢?我现在看到,这是我的问题..嗯。 – Vemund 2010-11-05 18:00:00

+0

@Vemund:这个测试在报价中的“test”:'\“(? [^ \”] * test [^ \“] *)\”';你可以通过'firstRegex | secondRegex'结合两者。如果你想允许在字符串中的任意位置进行“测试”,只需要做两次检查就可以了:一种检查“测试”,另一种检查(并返回)引用内容。 – Heinzi 2010-11-05 18:11:03

+0

谢谢!我找到了适合我的测试。 ^。*?test。*?\“(?。)*?\”。*?$ 我也可以添加一个测试来排除报价中的测试。 ^。*?test。*?\“((??!test)。)*?\”。*?$ – Vemund 2010-11-05 23:11:51

相关问题