Regex 正则表达式仅包含2个连续的特定字符
我正在尝试为抽象文件系统构建一个正则表达式。它应当:Regex 正则表达式仅包含2个连续的特定字符,regex,abstraction,Regex,Abstraction,我正在尝试为抽象文件系统构建一个正则表达式。它应当: 以字母[a-zA-Z]、“/”或“.”开头 只允许连续出现一次“/” 仅允许连续出现两次“.” 到目前为止,我已经做到了这一点(不允许使用3’’,但在只键入一个时有效。非常感谢您的任何输入。我尝试了第二组的正面和负面外观,但仍然存在相同的问题 (?!.*\/{2})(?!.*\.{3})^[A-Za-z\/\.]*$ 我的Regex101链接: 我添加了一个负前瞻,它匹配一个由两个非点字符包围的点 /(?!(.*[^.])?\.([^.
- 以字母[a-zA-Z]、“/”或“.”开头
- 只允许连续出现一次“/”
- 仅允许连续出现两次“.”
(?!.*\/{2})(?!.*\.{3})^[A-Za-z\/\.]*$
我的Regex101链接:
我添加了一个负前瞻,它匹配一个由两个非点字符包围的点
/(?!(.*[^.])?\.([^.].*)?$)(?!.*\/{2})(?!.*\.{3})^[A-Za-z\/\.]*$/
^^^^^^^^^^^^^^^^^^^^^^^^^
(.*[^.])? -> some arbitrary characters and at least one not-dot
\. -> the dot
([^.].*)?$ -> one not-dot and some arbitrary characters
如果单个点位于字符串的开头或结尾,则点之前和之后的两个块都是可选的
对它进行测试。我添加了一个负数前瞻,它匹配由两个非点字符包围的点
/(?!(.*[^.])?\.([^.].*)?$)(?!.*\/{2})(?!.*\.{3})^[A-Za-z\/\.]*$/
^^^^^^^^^^^^^^^^^^^^^^^^^
(.*[^.])? -> some arbitrary characters and at least one not-dot
\. -> the dot
([^.].*)?$ -> one not-dot and some arbitrary characters
如果单个点位于字符串的开头或结尾,则点之前和之后的两个块都是可选的
测试它。为什么你要用一个单数正则表达式来表达所有条件,而不是为每个规则构建一个正则表达式?在单独的测试中不允许
/^[^/.a-z]/i
,/[/]{2,}/
和/.]{3,}/
如何?好的建议!我可以做一个preg_匹配()在php中,我想了很多次。我没有想到。谢谢你为什么试图用一个单一的正则表达式来表达所有条件,而不是为每个规则构建一个正则表达式?在单独的测试中不允许/^[^/.a-z]/I
,/[/]{2,}/
和/[.]{3,}/
呢?好建议!我可以做一个preg_匹配()在php中,我想用多少次就用多少次。我没有想到。谢谢