0

我有一段文字,想用正则表达式查找一些字符串。我的问题是我不知道如何在这里制作“&&-and”。

我有这样的文字:

AB " something is here;
  and here...
";
...
AB "new line 
 continues ... ";

我想找到所有以“;”结尾的AB

我用于“;”的代码 :

var matches = Regex.Matches(tmp, "(AB) ([^;]*);", RegexOptions.Singleline);

但我怎么能做 "(AB) ([^(\";)]*)\";"或只是"(AB) ([^(\"&&;)]*)(\"&&;")

我想拥有:

AB

" something is here;
 and here ...
"

AB
"new line
 continues ..."
4

3 回答 3

2

^只能否定字符类,而字符类又不能包含字符串(但只能包含单个字符)。但是,对于字符串(或者实际上是成熟的正则表达式)有一个类似的概念,称为负前瞻:

@"(AB) (\"(?:(?!\";).)*\");"

这现在将使用任意字符 ( .),只要它们不标记 a 的开始";。当然,继续使用该Singleline选项。您可以在此处阅读有关环视断言的内容。

于 2012-11-05T10:28:43.510 回答
0

我不认为AND运营商存在甚至是必需的。阅读这个问题

但是,要完成您的字符串查找解决方案,此正则表达式指南可以为您提供很多帮助。希望能帮助到你。

http://www.regular-expressions.info/reference.html

于 2012-11-05T10:28:26.643 回答
0

试试这个Regex

AB\s+\"((?:.+\s*)+?(?=\";))\";

解释:

(?= subexpression) 零宽度正向超前断言。

(?: subexpression) 定义一个非捕获组。

. 通配符:匹配除 . 之外的任何单个字符\n

\s 匹配任何空白字符。

于 2012-11-05T10:38:54.197 回答