我想搜索成千上万的HTML代码,查看高度,宽度或任何其他CSS的不良做法。
例如,我想获得所有未提供单位高度的地方,例如应找到height:40
,但height:40px
不应该
为此我使用搜索程序代理搜索,我可以在其中放置正则表达式来搜索文件。
目前我的正则表达式为:
(height:)[\s]*[0-9]*\.?[0-9]+(px)
这会找到像height:40px
这样的所有内容。 (后来我想添加宽度或其他东西)
我的问题是如何在所有这些之上做出一个NOT?
或者有没有其他好的应用程序来搜索正则表达式的文件?
答案 0 :(得分:3)
使用否定前瞻(?!regex)
,例如:
height:\s*\d+(?:\.\d+)?(?!px|\d)
需要 \d
来防止回溯替代匹配。
答案 1 :(得分:0)
以这种方式使用否定前瞻:
(?!height:\s*\d+(?:\.\d+)?px)height:\s*\d+(?:\.\d+)?
考虑到您使用的是css,您可能希望将其他单元包含为有效的单位,例如pt
,em
,%
等...如下面的正则表达式
(?!height:\s*\d+(?:\.\d+)?(?:px|pt|em|%|cm|mm|in|ex|pc))height:\s*\d+(?:\.\d+)?
您可以通过Rubular
进行测试答案 2 :(得分:0)
考虑使用已经执行此操作的程序,并添加自己的规则。通常,修复源代码的做法称为“linting”。因此,您可以快速找到类似CSSLint的东西,它是开源的并允许自定义规则: