忽略特定数字的正则表达式

时间:2014-03-05 06:33:42

标签: regex

我需要一个正则表达式来选择这些

目录中的所有目录
1. start with any alpha
2. Not followed by a specific set of digits
3. Followed by a alpha numeric characters till the end

我尝试了以下表达式,但这不起作用

^skk\/[a-zA-Z]*[^1][a-z0-9A-Z]*$"

然而

 ^skk\/[a-zA-Z]*[^1]*$ 

完美无缺,但无法解决我的问题。

这里skk是根目录。

示例数据 不应选择skk / abc123 应选择skk / abc321

2 个答案:

答案 0 :(得分:2)

在我看来,你正在寻找更像是的正则表达式:

^skk\/(?![a-zA-Z]+1)[a-zA-Z]+[A-Za-z0-9]+$

regex101 demo

这可确保字母字符后面的第一个数字不是1.

这假设您使用的正则表达式引擎支持负向前瞻。

演示网站解释了正则表达式,但如果你想让我详细说明,请告诉我。

答案 1 :(得分:0)

在最后一次设置[]之后和$之前添加星号(*)或加号(+)。

  • 星号表示将前一个模式重复为零到无限次。 (匹配skk / abc1和skk / abc12)
  • Plus表示重复上一个模式一到无限次。 (匹配skk / abc12,无法匹配skk / abc1)