C# 正则表达式

C# 正则表达式,c#,regex,C#,Regex,我需要符号*的正则表达式(C#)-它应该匹配任意数量的字符,但只能包含一个空格。我尝试了以下操作,但不起作用: @".*[^[\t\0x0020]^[\t\0x0020]+].*" @".*[^\s^\s+].*" @".*[^\s\s+].*" 有没有办法创建这样的正则表达式 例如:如果用户编写表达式MTN*-*,它必须匹配 MTN3111-0000 但不是 MTN311100 MTN3111-0000 您可以使用以下表达式: \S*\s?\S* 它将匹配任意数量的任意字符,但

我需要符号*的正则表达式(C#)-它应该匹配任意数量的字符,但只能包含一个空格。我尝试了以下操作,但不起作用:

 @".*[^[\t\0x0020]^[\t\0x0020]+].*"
 @".*[^\s^\s+].*"
 @".*[^\s\s+].*"
有没有办法创建这样的正则表达式

例如:如果用户编写表达式
MTN*-*
,它必须匹配

MTN3111-0000
但不是

MTN311100  MTN3111-0000

您可以使用以下表达式:

\S*\s?\S*
它将匹配任意数量的任意字符,但最多允许一个空格。

此处:

@"[^\s]*\s?[^\s]*"
然后根据其他要求可能会有一些细节

请尝试以下方法:

([^\-]+\-[^\s]+)\s

您能举一个输入通过和失败的例子吗?
[^\s]
与不在指定字符集中的字符匹配。您说它是用于字符
-
,但随后提到一个空格。但是,您匹配的示例没有任何空格。我不确定我是否理解您需要的内容。@Gian,不,OP不想锚定它,因为它将用于更大表达式的一部分。还请注意,您的表达式在目标字符串中允许两个空格,请尝试找出原因。;-)好啊关于我的表情,当我测试它时,当输入两个空格时,我无法匹配一个好的结果,你确定你在说什么吗?@Gian,是的,我确定。提示:它与您添加的两个字符中的一个有关,请在中查找。我正在考虑回车符,但在我的应用程序中,我无法使用此regexp=/@Gian来设置空格和回车符,字符串
“\n”
将匹配
$
始终允许在字符串末尾添加
\n