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