我想在C#中使用正则表达式匹配字符串。该字符串只能有零个或多个空格,而不能有其他字符。正则表达式,只能从零或多个空格开始
有效的字符串为:
"> 5", " > 5"
无效的字符串是:
"1 > 5", "1> 3", ">> 3"
我现在所拥有的正则表达式:
"\s*> "
我自己也尝试"[\s*]> "
和"[\s]*> "
但没有运气。
这似乎是一个简单的问题,但即时通讯新鲜的正则表达式,我没有找到答案在别处。
在此先感谢!
我想在C#中使用正则表达式匹配字符串。该字符串只能有零个或多个空格,而不能有其他字符。正则表达式,只能从零或多个空格开始
有效的字符串为:
"> 5", " > 5"
无效的字符串是:
"1 > 5", "1> 3", ">> 3"
我现在所拥有的正则表达式:
"\s*> "
我自己也尝试"[\s*]> "
和"[\s]*> "
但没有运气。
这似乎是一个简单的问题,但即时通讯新鲜的正则表达式,我没有找到答案在别处。
在此先感谢!
我不认为你只是意味着“从0开始或更多的空白字符”,因为那时每串将是有效的,包括空字符串,因为它满足至少“从0开始的空白”。看看你的示例输入,也许你的意思是“从0或更多的空白字符开始,后面跟着正好一个>
”。在这种情况下,这个正则表达式应该这样做:
^\s*>[^>]*$
与+
更换第二*
如果您需要>
符号后匹配的东西。
是的,这正是我的意思,感谢理解和抱歉,因为没有更清楚。它似乎工作,所以我接受这个答案。谢谢你的帮助! – Andreas 2011-03-21 10:25:42
与^
开始你的表达,以表明它锚定到被测试的字符串的开始。否则,与表达式匹配的任何子字符串都将意味着表达式计数为匹配,当然,每个子字符串都以零或多个空格开始(每个子字符串以零或多个任何内容开始)。因此:
^\s*>
同样,如果你需要指定哪些字符串可以结束了,然后用$
锚定到字符串的结尾正在测试中。
在包含换行符的测试表达式中,单行和多行选项可更改这些锚点的行为。
+1的好解释!谢谢 – Andreas 2011-03-21 10:27:41
^\s*>[^>]*$
不匹配' > 35 > 23'
^\s*>(?!>).*$
确实匹配
[当问正则表达式的问题,随时添加标签为特定的编程语言或工具(例如,Perl,Python和或Java;六, emacs或ɢɴᴜgrep;等等)您正在使用。](http://stackoverflow.com/tags/regex/info) – Johnsyweb 2011-03-21 10:12:13
如果表达式可以以“零个或多个”空格开始,那么我有点困惑。这意味着,它可以从“零空白”开始,这意味着它可以以其他字符开头吗? – Chris 2011-03-21 10:13:15
Try \ s +虽然Johnsy是非常正确的,一些情况下会有用。 – nimizen 2011-03-21 10:14:10