3

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

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

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

匹配为假

 .text.
 ..text
 text..
 ..te.xt..

匹配为真

 text
 te..xt

我想出了这个。它只匹配起始空格。

^(?!\s+).*$
4

3 回答 3

7

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

^\S(.*\S)?$

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

于 2013-02-20T00:11:39.717 回答
1

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

!Regex.IsMatch(input, @"(^\s)|(\s$)")
于 2013-02-20T00:07:23.610 回答
0

这种模式应该可以解决问题:

^\s*.*?\s*$

和用法:

Regex.IsMatch(input, @"^\s*.*?\s*$");
于 2013-02-20T00:18:59.540 回答