正则表达式只有 2 个连续的特定字符
Regular expression only 2 consecutive specific characters
我正在尝试为抽象文件系统构建正则表达式。它应该:
- 以字母 [a-zA-Z]、“/”或“.”开头
- 只允许连续出现一次'/'
- 只允许连续出现两次“.”
这是我目前所拥有的(不允许使用 3 个 '.',但在只输入一个时有效。非常感谢任何输入。我尝试了第二组的正面和负面前瞻,但它仍然有同样的问题.
(?!.*\/{2})(?!.*\.{3})^[A-Za-z\/\.]*$
我的 Regex101 link:
我添加了一个否定前瞻,它匹配一个被两个非点字符包围的点 .
。
/(?!(.*[^.])?\.([^.].*)?$)(?!.*\/{2})(?!.*\.{3})^[A-Za-z\/\.]*$/
^^^^^^^^^^^^^^^^^^^^^^^^^
(.*[^.])? -> some arbitrary characters and at least one not-dot
\. -> the dot
([^.].*)?$ -> one not-dot and some arbitrary characters
如果单个点出现在字符串的开头或结尾,则两个块(点之前和之后)都是可选的。
在 regex101.
上测试
我正在尝试为抽象文件系统构建正则表达式。它应该:
- 以字母 [a-zA-Z]、“/”或“.”开头
- 只允许连续出现一次'/'
- 只允许连续出现两次“.”
这是我目前所拥有的(不允许使用 3 个 '.',但在只输入一个时有效。非常感谢任何输入。我尝试了第二组的正面和负面前瞻,但它仍然有同样的问题.
(?!.*\/{2})(?!.*\.{3})^[A-Za-z\/\.]*$
我的 Regex101 link:
我添加了一个否定前瞻,它匹配一个被两个非点字符包围的点 .
。
/(?!(.*[^.])?\.([^.].*)?$)(?!.*\/{2})(?!.*\.{3})^[A-Za-z\/\.]*$/
^^^^^^^^^^^^^^^^^^^^^^^^^
(.*[^.])? -> some arbitrary characters and at least one not-dot
\. -> the dot
([^.].*)?$ -> one not-dot and some arbitrary characters
如果单个点出现在字符串的开头或结尾,则两个块(点之前和之后)都是可选的。
在 regex101.
上测试