正则表达式正则表达式如何使“和”

时间:2012-11-05 10:21:07

标签: c# regex split find

我有一个文本,想要找到一些正则表达式的字符串。我的问题是我不知道怎么做"&& -and"这里。

我有这样的文字:

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

我想找到所有AB,以&#34 ;;

结尾

我的代码用于";" :

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

但我如何制作"(AB) ([^(\";)]*)\";""(AB) ([^(\"&&;)]*)(\"&&;")

我想:

AB

" something is here;
 and here ...
"

AB
"new line
 continues ..."

3 个答案:

答案 0 :(得分:2)

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

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

这将使用任意字符(.),只要它们不标记";的开头即可。当然,继续使用Singleline选项。你可以在lookaround assertions here上阅读。

答案 1 :(得分:0)

我不认为AND运算符存在或甚至是必需的。 read this question

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

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

答案 2 :(得分:0)

试试这个Regex

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

解释

  

(?= subexpression) 的   零宽度正向先行断言。

     

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

     

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

     

\s 的   匹配任何空白字符。