正则表达式,只能以零或多个空格开头

时间:2011-03-21 10:08:54

标签: c# .net regex

我想在C#中将字符串与正则表达式匹配。该字符串只能以零或更多的空格开头,不允许其他字符。

有效字符串是:

"> 5", " > 5"

无效的字符串是:

"1 > 5", "1> 3", ">> 3"

我现在有这个正则表达式:

"\s*> "

我也试过"[\s*]> ""[\s]*> ",但没有运气。

这似乎是一个简单的问题,但我对正则表达式很新鲜,我在其他地方找不到答案。

提前致谢!

4 个答案:

答案 0 :(得分:4)

我不认为你只是意味着“以0或更多的空白字符开头”,因为每个字符串都是有效的,包括空字符串,因为它至少满足“从0开始空白”。

查看您的示例输入,也许您的意思是“从0个或更多的空白字符开始,然后只有一个>”。在这种情况下,这个正则表达式应该这样做:

^\s*>[^>]*$

如果您需要在*符号后匹配内容,请将第二个+替换为>

答案 1 :(得分:1)

使用^启动表达式,表明它已锚定到正在测试的字符串的开头。否则,匹配表达式的任何子字符串将表示表达式计为匹配,当然每个子字符串都以零或多个空格开头(每个子字符串都以零或多个任何东西开头)。因此:

^\s*>

同样,如果要指定字符串可以结束的内容,请使用$锚定到正在测试的字符串的末尾。

单行和多行选项会在包含换行符的测试表达式的情况下更改这些锚点的行为。

答案 2 :(得分:0)

这样可以解决问题:

^\s*>.+?$

答案 3 :(得分:0)

^\s*>[^>]*$' > 35 > 23'

不匹配

^\s*>(?!>).*$匹配