我有一个自定义图标的CSS文件,我想从中提取类名和内容值。
CSS文件的大部分行如下:
.my-icon-bus:before { content: ''e820'; } /* '' */
.my-icon-tools:before { content: ''e821'; } /* '' */
.my-icon-science:before { content: ''e822'; } /* '' */
.my-icon-quotes:before { content: ''e823'; } /* '' */
.my-icon-printer:before { content: ''e827'; } /* '' */
我在regex101.com中尝试了下面的regex模式,它运行得很好——在这里可以看到它的工作原理,返回类名及其内容代码,但当我尝试使用preg_match_all从PHP中执行同样的操作时,它与任何内容都不匹配。
'.(my-icon-'w+):before's*{'s*content:'s*(["']'''w+["']);
这是我的PHP代码,希望你们中的一位RegEx大师能帮我解决这个问题。
$css = file_get_contents( '/path/to/my/css/file/my-icon.css' );
preg_match_all( '/'.(my-icon-'w+):before's*{'s*content:'s*(["'']'''w+["'']);/s', $css, $matches );
var_dump($matches);
如果有人想知道,变量$css确实包含css文件内容。
提前感谢您提供的任何帮助。
/''.(my-icon-''w+):before''s*{''s*content:''s*(['"']''''''w+['"']);/s
注意字符串/''.
的开头(双反斜杠),它工作得很好。