Regex-所有不带.html扩展名的PHP文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Regex-所有不带.html扩展名的PHP文件相关的知识,希望对你有一定的参考价值。
我需要一个正则表达式来获取所有带有.php
扩展名但不包含.html
的文件。
例如:
foo.php (this file is ok)
foo.html.php (this file is not ok)
foo.bar (this file is not ok)
foo.bar.php (this file is ok)
我创建了此正则表达式:
^(?!.*(.html))
但是以这种方式,我也得到了以.bar
结尾的文件(不仅是以.php
结尾的文件。
答案
在您自己的正则表达式中,您没有明确指定.php
文件扩展名,因此引擎不知道哪个扩展名应该匹配,哪些不应该匹配。您即将实现,如果需要修改,请稍做:^(?:.(?!\.html))*\.php$
Live demo
另一答案
您可以确保在任何地方都没有.html
,并且在您要与之匹配的字符串中以.php结尾:^(?!.*\.html).*\.php$
https://regex101.com/r/TOiJQP/4
- [
.*\.php$
与以.php结尾的文件名匹配
^(?!.*\.html)
负前瞻。从字符串的开头(因此^
),确保文件名中的任何位置都没有.html另一答案
这将匹配没有html的.php。我用消极的眼光看待它.*(?<!\.html)\.php$
regex101的解释
(?<!html)
负向后看。断言以下正则表达式不匹配html从字面上匹配html字符(区分大小写)
\.
匹配字符。从字面上看(区分大小写)php从字面上匹配字符php(区分大小写)[
$
声明行尾的位置
以上是关于Regex-所有不带.html扩展名的PHP文件的主要内容,如果未能解决你的问题,请参考以下文章