我正在与我的正则表达式搏斗。 我只想在用户名中使用字母、数字和一个点,长度为 2 到 20 个字符 我想到了这样的事情
[0-9a-zA-Z]{2,20}
但是 21 个字符也可以,这不是我想要的
最佳答案
我建议您进行两项检查 - 一项检查长度,一项检查内容,因为您可能只需要名称中的一个点,而不是任意数量的点。我假设像 username
和 user.name
这样的名称是唯一允许的格式。
这应该得到内容(但也允许下划线):
^\w+(\.\w+)?$
如果您不需要下划线,那么您可以使用 [0-9a-zA-Z]+
代替 \w+
。解释一下,它将匹配由一个或多个单词字符组成的任何字符串,后跟恰好 0 或 1 个点,然后是一个或多个单词字符。它还必须匹配字符串的开头和结尾,即字符串中不允许有其他字符。
然后你只需要通过简单的长度检查就可以得到长度。
关于c# 正则表达式问题 : only letters, 数字和一个点(2 到 20 个字符)允许,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2850005/