Wor*_*mon 3 javascript regex safari regex-negation regex-lookarounds
我想将某些文件类型(例如“.txt”)与不以特定子字符串结尾的非空根名称(例如“-bad”)进行匹配。有了消极的后向支持,解决方案很简单:
\n/.(?<!-bad)\\.txt$/\nRun Code Online (Sandbox Code Playgroud)\n然而,Safari仍然不支持负向后查找。啊。如何使用负前瞻获得相同的结果?我想用一个正则表达式来做到这一点。请不要提供任何非正则表达式或多步骤解决方案。
\n下面的测试代码显示我已经接近了,但一项测试仍然失败。
\n/.(?<!-bad)\\.txt$/\nRun Code Online (Sandbox Code Playgroud)\r\n\n
您可以使用
^(?!.*\-bad\.txt$).+\.txt$
Run Code Online (Sandbox Code Playgroud)
正则表达式如下:
^)(?!...)) 来断言字符串不以“-bad.txt”结尾要同时检查多个文件中的任何一个是否足够(根据下面的评论,这可能会有所帮助),您可以编写,例如:
^(?=.*\.(txt|pdf|csv|docx|html|jpeg)$)(?!.*\-bad\.\1$).+\.\1$
Run Code Online (Sandbox Code Playgroud)
开头的正向先行的唯一目的是捕获字符串末尾的文件后缀,以便可以在负向先行和末尾使用反向引用。