1

我想在数千个 HTML 代码中搜索高度、宽度或任何其他 CSS 的不良做法。

例如,我想获取所有未提供单位高度的地方,例如height:40应该找到但height:40px不应该找到。

为此,我正在使用搜索程序代理 ransack,我可以在其中放置正则表达式以在文件中进行搜索。

目前我的正则表达式是:

(height:)[\s]*[0-9]*\.?[0-9]+(px) 

这会找到所有类似的东西height:40px。(稍后我想添加宽度或其他东西)

我的问题是如何在所有这些之上做一个NOT?

或者有没有其他好的应用程序来搜索文件中的正则表达式?

4

3 回答 3

3

使用负前瞻(?!regex),例如:

height:\s*\d+(?:\.\d+)?(?!px|\d)

\d需要防止回溯备选方案匹配。

于 2012-09-05T14:48:46.803 回答
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对其进行测试

于 2012-09-07T14:45:03.833 回答
0

考虑使用已经执行此操作的程序,并添加您自己的规则。通常,修复源代码的做法称为“linting”。因此,您可以快速找到类似 CSSLint 之类的东西,它是开源的并允许自定义规则:

https://github.com/stubbornella/csslint/wiki/Rules

http://csslint.net/

于 2012-09-07T14:49:23.077 回答