正则表达式允许字母数字,只有一个空格,然后是字母数字

时间:2012-06-28 21:01:12

标签: c# .net regex

我搜索并搜索并尝试了许多不同的方法,但我似乎无法解决这个问题。我正在寻找一种只允许字母数字字符,然后只有一个空格,然后是字母数字字符的方法。我确信这很容易,但我不知道。

我想要的例子:

    First Last     Allowed
    First La-st    Not Allowed
    FirstLast      Not Allowed
    First  Last    Not Allowed
    First La'st    Not allowed

然后我想从字符串中删除无效字符。

如果您需要更多信息,请与我们联系。非常感谢!

6 个答案:

答案 0 :(得分:13)

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

......应该这样做。

答案 1 :(得分:6)

这应该这样做:

^[0-9a-zA-Z]+ [0-9a-zA-Z]+$

演示:http://jsfiddle.net/5m6RH/

答案 2 :(得分:5)

使用此正则表达式:

^[\p{L}\d]+ [\p{L}\d]+$

答案 3 :(得分:1)

我相信你不想要名字中的数字而且你正在寻找这个正则表达式:

^\p{L}+ \p{L}+$

^\p{L}+\s\p{L}+$

\p{L}+匹配一个或多个“字母”字符,不仅仅是a-zA-Z,还包括其他语言的字符。例如,ÉliseWilson


如果你真的只想要字母数字字符,输入应该有两个部分,其间有一个空格;必须删除无效字符,然后:

  1. [^\s\dA-Za-z]+的所有匹配项替换为空字符串
  2. 通过用空字符串
  3. 替换^\s*来修剪前导空格
  4. 通过用空字符串替换\s*$
  5. 来修剪尾随空格
  6. 使用正则表达式^[\da-zA-Z]+ [\da-zA-Z]+$
  7. 检查/验证此类字符串

    从上面的模式中删除字符串中的数字{/ 1}}。

    要在两个空格字符之间留出更长的空格,请在第一个模式中的空格字符后面添加\d,或在第二个模式中添加+

答案 4 :(得分:0)

这应该有用

(?i)\b[a-z\d]+ [a-z\d]+\b

答案 5 :(得分:0)

这将完美适用于字母数字,如果适用,它们之间只有一个空格

    @"^[a-zA-Z0-9]+([ ]{0,1}[a-zA-Z0-9]+)*$"

它将允许相似的值

    anand
    anand dev
    anand123 
    anand123 dev
    123anand
    123anand dev123
    my user name is anand123
    anand123  dev               **Not allowed due to multiple space**
     anand dev                  **not allowed due to space at begining**

希望这会对你有所帮助。 感谢。