首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >小写和不以固定字母开头的正则表达式

小写和不以固定字母开头的正则表达式
EN

Stack Overflow用户
提问于 2013-03-01 11:22:44
回答 1查看 3.2K关注 0票数 0

我要使它发挥作用,我已经束手无策了。

我只需要:

  1. 投入不应该从爱开始。
  2. 并非所有有效字符都必须相同。
  3. 必须至少有6个有效字符(大写和数字),最多为18个。
  4. 其他允许的字符有空格、符号(&)、连字符、句号、solidus (/)。

例子:

埃蒂尔

不允许使用afgTYULO (只包含5个有效字符)

LOVE12345WERT是不允许的(从爱开始)。

允许asdERTY12 12^&(至少6个有效字符(ERTY12上和数字))

asAAertArtytyAtytytuArtyttyAyuyuyyA是不允许的,即使我们有6个有效的字符,但它们都是一样的。

请指点。

注:我编辑这个问题是因为我忘记了作业中的一些要点。

EN

回答 1

Stack Overflow用户

发布于 2013-03-01 11:27:21

注:此正则表达式与原问题中的描述相匹配。自那以后,编辑们就大大地改变了要求。

如果我正确理解你的话,这个regex应该能起作用:

代码语言:javascript
复制
/^(?!LOVE)[^a-z]+$/

这将匹配任何不以爱开头且不包含小写字母的内容。

(注:假设为标准英文字母表,a-z )

解释:

^$锚定到字符串的开头和结尾。这将强制模式匹配整个字符串。

(?!LOVE)是前瞻性的.它检查字符串没有以爱开始,但它根本没有将匹配位置向前移动。因此,其余的regex仍然检查整个字符串。

[^a-z]是一个否定的字符类,它匹配任何不是小写字母的字符。

+与前面的事物匹配一次或多次。因此它匹配一个或多个不是小写字母的字符。

更新:

那么,你也想不允许任何只有相同的字符重复?下面是与只包含相同字符的字符串匹配的正则表达式:

代码语言:javascript
复制
/^(.)\1+$/

(.)匹配单个字符并将其放入第一个捕获组中。

\1+匹配捕获组的一个或多个事件。

在这种情况下,因为它与您不想要的输入匹配,所以您必须检查regex不匹配。

可以使用另一种展望将其合并在同一个正则表达式中:

代码语言:javascript
复制
 /^(?!LOVE)(?!^(.)\1+$)[^a-z]+$/

但是,当您向相同的正则表达式添加越来越多的条件时,理解起来就越来越难了。如果您必须进行几次检查,通常更明智的做法是将它们划分为不同的正则表达式。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15156520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档