C# 正则表达式匹配字符串,不以空格开头和/或结尾,但允许中间空格

C# 正则表达式匹配字符串,不以空格开头和/或结尾,但允许中间空格,c#,regex,C#,Regex,我需要一个正则表达式来不匹配以空格开头和/或结尾的字符串,而是在空格之间匹配。我不是正则表达式专家 如果需要,我可以使用2个正则表达式 注意:使用在示例中显示空格。 比赛是假的 .text. ..text text.. ..te.xt.. 比赛对我来说是真实的 text te..xt 我想到了这个。它只匹配起始空格 ^(?!\s+).*$ 匹配你不想要的,然后否定它可能更容易: !Regex.IsMatch(input, @"(^\s)|(\s$)") 您可以将\S字符类与^

我需要一个正则表达式来不匹配以空格开头和/或结尾的字符串,而是在空格之间匹配。我不是正则表达式专家

如果需要,我可以使用2个正则表达式

注意:使用
在示例中显示空格。

比赛是假的

 .text.
 ..text
 text..
 ..te.xt..
比赛对我来说是真实的

 text
 te..xt
我想到了这个。它只匹配起始空格

^(?!\s+).*$

匹配你不想要的,然后否定它可能更容易:

!Regex.IsMatch(input, @"(^\s)|(\s$)")

您可以将
\S
字符类与
^
$
锚定一起使用

^\S(.*\S)?$

需要可选的
*\S
分组来匹配单个非空格字符。

此模式应能实现以下功能:

^\s*.*?\s*$
使用方法:

Regex.IsMatch(input, @"^\s*.*?\s*$");

@shane andradei我早就想到了我用了你原来的正则表达式。但它只限于@scott wegner最初提到的内容和您现在拥有的内容。@hlpPy,对我来说,我的方法是可读的,更容易理解:)也许我只是不知道一些技巧……向下投票是因为
^\S+.*?\S+$
需要两个非空白字符,因此不能正确匹配由单个字母组成的字符串,例如a
^\S(.*\S)?$
是一个更好的表达式。