【发布时间】:2019-12-17 09:31:09
【问题描述】:
我有以下正则表达式:
/([A-Za-z0-9]+)([A-Za-z0-9\-\_]+)([A-Za-z0-9]+)/
它不符合我的需要,它们是:
- 不允许有空格
- 允许大写英文字母
- 允许小写英文字母
- 允许数字
- 字符串不能同时包含连字符和下划线
-
连字符:连字符不能在字符串的开头或结尾;
可以有任意数量的连字符,但连续只能有 1 个连字符(
a--b无效)。 -
下划线:下划线不能在字符串的开头或结尾;可以有任意数量的下划线,但连续只能有 1 个下划线(
a__b无效) - 字符串必须至少包含 1 个字符(字母)
有效例子:
a1_b_2_hello2b-ffg-er2abs123a
无效示例:
_a1_b_2_hello2b-ffg_er2-__--a__b--2
【问题讨论】:
-
你说
the string must contain at least 1 character,那么123是如何有效的呢?a或1应该是有效的吗? -
@depperm 描述有误,不错,
123无效 -
@depperm 我在错误的帖子中发表了我的推荐,我想问 Andrey Deineko 他尝试匹配什么,Andrey Deineko 举个例子你尝试匹配什么
-
你有一个非常正式的算法,并试图用正则表达式来解决它。我可以问为什么吗?检查所有条件一步一步会有什么问题?
-
@CarySwoveland 我按照你的建议编辑了问题,谢谢