【发布时间】:2010-12-09 17:47:41
【问题描述】:
我想扫描一个 css 文件并捕获 cmets 和 css。我想出了一个几乎存在的正则表达式,但是它并不完美,因为它错过了具有多个声明的属性,即
ul.menu li a, # Won't capture this line
ul.nice-menu li a { text-decoration: none; cursor:pointer; }
这是我正在使用的正则表达式:
(\/\*[^.]+\*\/\n+)?([\t]*[a-zA-Z0-9\.# -_:@]+[\t\s]*\{[^}]+\})
我一直在 rubular.com 对此进行测试,这是它当前匹配的内容,以及数组输出的内容。
结果一
[0] /* Index */
/*
GENERAL
PAGE REGIONS
- Header bar region
- Navigation bar region
- Footer region
SECTION SPECIFIC
- Homepage
- News */
[1] html { background: #ddd; }
结果 2
[0]
[1] body { background: #FFF; font-family: "Arial", "Verdana", sans-serif; color: #545454;}
我必须指出,在正则表达式方面我还是个新手,所以如果有人能提供帮助并指出我哪里出错了,我将不胜感激:)
顺便说一句: 我正在使用 PHP 和 preg_match_all
【问题讨论】:
-
你能定义你想要什么样的输出吗? “你想要css和cmets”是要全局来确定你想要什么。指定某种数组
-
我已经在问题中添加了当前的预期输出,希望对您有所帮助:)