我已经搜索和搜索并尝试了许多不同的方法,但我似乎无法弄清楚这一点。我正在寻找一种只允许字母数字字符,然后只有一个空格,然后是字母数字字符的方法。我敢肯定这很容易,但我不知道。
我想要的例子:
第一个最后允许 第一个最后一个不允许 FirstLast 不允许 第一个 最后一个 不允许 First La'st 不允许
然后我想从字符串中删除无效字符。
如果您需要更多信息,请告诉我。非常感谢!
^[a-zA-Z0-9]+ [a-zA-Z0-9]+$
……应该这样做。
使用这个正则表达式:
^[\p{L}\d]+ [\p{L}\d]+$
我相信你不想要名称中的数字,你正在寻找这个正则表达式:
^\p{L}+ \p{L}+$
或者
^\p{L}+\s\p{L}+$
where\p{L}+
匹配一个或多个“字母”字符,因此不仅是a-z
and A-Z
,还有其他语言的字符。例如,埃莉斯·威尔逊。
如果你真的只想要字母数字字符,输入应该有两个部分,中间有一个空格;并且必须删除无效字符,然后:
[^\s\dA-Za-z]+
用空字符串替换所有匹配项,^\s*
为空字符串来修剪前导空格,\s*$
为空字符串来修剪尾随空格,以及^[\da-zA-Z]+ [\da-zA-Z]+$
要从字符串中排除数字,请\d
从上述模式中删除。
要允许更长的空间,而不仅仅是一个空格字符,请在第一个模式中添加+
空格字符或在第二个模式后面添加空格字符\s
。
这应该工作
(?i)\b[a-z\d]+ [a-z\d]+\b
这对于字母数字非常有效,如果适用,它们之间只有一个空格
@"^[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**
希望这会帮助你。谢谢。