正则表达式仅连续2个特定字符

时间:2016-06-03 12:45:04

标签: regex abstraction

我正在尝试为抽象文件系统构建正则表达式。它应该:

  • 以字母[a-zA-Z],' /'或'开头。'
  • 仅允许连续出现一次' /'
  • 仅允许连续两次出现'。'

这是我到目前为止所做的事情(工作不允许3'。但只在输入一个时工作。任何输入都非常感激。我尝试了第二个正面和负面的前瞻小组,但它仍然有同样的问题。

(?!.*\/{2})(?!.*\.{3})^[A-Za-z\/\.]*$

我的Regex101链接:

https://regex101.com/r/xM8oY5/1

1 个答案:

答案 0 :(得分:0)

我添加了一个负向前瞻,它匹配由两个非点字符包围的点.

/(?!(.*[^.])?\.([^.].*)?$)(?!.*\/{2})(?!.*\.{3})^[A-Za-z\/\.]*$/
 ^^^^^^^^^^^^^^^^^^^^^^^^^
    (.*[^.])?              -> some arbitrary characters and at least one not-dot
             \.            -> the dot
               ([^.].*)?$  -> one not-dot and some arbitrary characters

如果单个点位于字符串的开头或结尾,则两个块 - 点之前和之后 - 都是可选的。

regex101上进行测试。