简单的正则表达式问题

3

我对正则表达式还很陌生(只有15分钟的经验),所以我无法解决这个问题。我只想要一个可以匹配没有空格的字母数字字符串的正则表达式。例如:

"ThisIsMyName" 应该匹配,但是 "This Is My Name" 不应该匹配。


我强烈建议使用 Regex Tester VS10 扩展,如果你正在使用该 IDE。 - Squirrelsama
5个回答

4

^[a-zA-Z0-9]+$ 可匹配字符串中的任何字母和数字,不包含空格(或任何标点符号)。它还要求至少有一个字母数字字符。这使用了一个字符类进行匹配。分解如下:

^       #Match the beginning of the string
[       #Start of a character class
  a-z   #The range of lowercase letters
  A-Z   #The range of uppercase letters
  0-9   #The digits 0-9
]       #End of the character class
+       #Repeat the previous one or more times
$       #End of string

另外,如果您想要“捕获”匹配结果以便稍后引用,可以将正则表达式用括号(捕获组)括起来,例如:

^([a-zA-Z0-9]+)$

更进一步:由于您使用了C#标签,MSDN有一个小技巧,介绍如何在.NET中使用正则表达式。您可以在这里找到它。您还可以注意到一个事实,如果您使用RegexOptions.IgnoreCase标记运行正则表达式,则可以简化为:^([a-z0-9])+$

啊哈,这个完美运行了。我之前漏掉了$符号。非常感谢。 - A.R.

0

尝试使用这个正则表达式看看是否有效:(\w+)


请注意,这也匹配下划线字符。 - eldarerathis

0

这将匹配任何非空格字符序列:

\S+

0

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接