C# 正则表达式regex如何生成;及;

C# 正则表达式regex如何生成;及;,c#,regex,split,find,C#,Regex,Split,Find,我有一个文本,想找到一些带有正则表达式的字符串。我的问题是我不知道如何在这里做“&&&-和” 我有这样的文字: AB " something is here; and here... "; ... AB "new line continues ... "; 我想找到所有AB,以“ 我的代码用于“;“: 但是我怎样才能使“(AB)([^(\”;)]*)\”;“或只是”(AB)([^(\”&&&;)]*)(\”&&;” 我希望: AB " something is here; and

我有一个文本,想找到一些带有正则表达式的字符串。我的问题是我不知道如何在这里做“&&&-和”

我有这样的文字:

AB " something is here;
  and here...
";
...
AB "new line 
 continues ... ";
我想找到所有AB,以“

我的代码用于“;“:

但是我怎样才能使
“(AB)([^(\”;)]*)\”;“
或只是
”(AB)([^(\”&&&;)]*)(\”&&;”

我希望:

AB

" something is here;
 and here ...
"

AB
"new line
 continues ..."

我认为不存在或甚至不需要
操作符

不过,为了完成字符串查找解决方案,本正则表达式指南可以为您提供很多帮助。 希望能有帮助


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

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

这将使用任意字符(
),只要它们不标记
”的开头。当然,请继续使用
单线
选项。你可以继续阅读。

试试这个
Regex

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

(?=子表达式)
零宽度正向前瞻断言

(?:子表达式)
定义非捕获组

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

\s
匹配任何空白字符


你到底想匹配什么?你可以展示一个文本块的例子,然后是你想要匹配的部分吗?请看我的编辑,我想要实现的。我尝试了您的代码,但在@AB?@UniLe中出现了一些错误。请注意,我的代码片段不是正则表达式,而是完整的正则表达式字符串(作为逐字字符串,应始终用于正则表达式)。如果您想分别捕获这两个部分,只需添加括号:
“(AB)(\”(?:(!\”;)*\”;
。但是,在您的情况下,这有点毫无意义,因为匹配的前两个字符始终是
AB
,从索引
3
到倒数第二个索引的字符将是其余字符。@m.buettned:谢谢,您的代码工作得很好。AB只是一个例子,可能更多像AB CD…,但我想要的是你的代码,再次感谢当我有一个字符串
AB 134 aBd“…”如何更改您的代码?类似于
“(AB)([0-9])([A-Za-z0-9])(\”(?:(?!\”;))*”;“
@UniLe close,除了需要重复字符类(否则它们将只匹配允许的字符中的一个字符):
@”(AB)([0-9]+)([a-Za-z0-9]+)(\”(?:(!\”;))*\”;“
”。当然,您可以将所有选项都设置为可选,因此它仍然适用于初始示例:``@“(AB)\s*([0-9]*)\s*([A-Za-z0-9]*)\s*(\”(?:(?!\”;)*)\”;“`我的编译器不'识别什么\s?”?
AB\s+\"((?:.+\s*)+?(?=\";))\";